Advertisement
Guest User

Untitled

a guest
Feb 16th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. import socket,time, re, select
  2. from bs4 import BeautifulSoup
  3. import threading, ssl
  4.  
  5. d = ''
  6. pngs = []
  7. url = "www.utm.md"
  8. urlTest = "https://utm.md"
  9. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  10. s = ssl.wrap_socket(s)
  11. host = socket.gethostbyname(url)
  12. print('Connect to socket: ' + str(host) + ':80')
  13. print('Get body["img"]->.png')
  14. s.connect((host, 443))
  15. s.sendall(b'GET / HTTP/1.1\r\n' + b'Host: utm.md \r\n\r\n')
  16.  
  17. while True:
  18. data = s.recv(512)
  19. if len(data) < 1:
  20. break
  21. d += str(data)
  22. soup = BeautifulSoup(d, 'lxml')
  23. body = soup.find('body')
  24.  
  25. images = re.findall("[\=,\(][\"|\'].[^\=\"]+\.(?i:jpg)[\"|\']",str(body))
  26. images.sort()
  27. for i in images:
  28. pngs.append(i.replace('="', '').replace('"','').rstrip())
  29. s.close()
  30. pngs = list(dict.fromkeys(pngs))
  31.  
  32. print('All ' + str(len(pngs)) + ' links has been collected.')
  33.  
  34. def down(png):
  35. png = png[png.find(urlTest)+len(urlTest):]
  36. print("Get image: " + str(png))
  37. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  38. s = ssl.wrap_socket(s)
  39. s.connect((host, 443))
  40. s.sendall(b'GET ' + png.encode() + b' HTTP/1.1\r\nHOST: utm.md\r\n\r\n')
  41.  
  42. reply = b''
  43.  
  44. while select.select([s], [], [], 3)[0]:
  45. data = s.recv(2048)
  46. if not data: break
  47. reply += data
  48.  
  49. headers = reply.split(b'\r\n\r\n')[0]
  50. image = reply[len(headers)+4:]
  51.  
  52.  
  53. # save image
  54. if png[-1] == "'":
  55. png[-1] = ''
  56. try:
  57. f = open('img/' + png.replace('/', '-'), 'wb')
  58.  
  59. f.write(image)
  60. f.close()
  61. except:
  62. pass
  63. s.close()
  64.  
  65.  
  66. for png in pngs:
  67. my_thread = threading.Thread(target=down, args=(png,))
  68. my_thread.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement