Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket,time, re, select
- from bs4 import BeautifulSoup
- import threading, ssl
- d = ''
- pngs = []
- url = "www.utm.md"
- urlTest = "https://utm.md"
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s = ssl.wrap_socket(s)
- host = socket.gethostbyname(url)
- print('Connect to socket: ' + str(host) + ':80')
- print('Get body["img"]->.png')
- s.connect((host, 443))
- s.sendall(b'GET / HTTP/1.1\r\n' + b'Host: utm.md \r\n\r\n')
- while True:
- data = s.recv(512)
- if len(data) < 1:
- break
- d += str(data)
- soup = BeautifulSoup(d, 'lxml')
- body = soup.find('body')
- images = re.findall("[\=,\(][\"|\'].[^\=\"]+\.(?i:jpg)[\"|\']",str(body))
- images.sort()
- for i in images:
- pngs.append(i.replace('="', '').replace('"','').rstrip())
- s.close()
- pngs = list(dict.fromkeys(pngs))
- print('All ' + str(len(pngs)) + ' links has been collected.')
- def down(png):
- png = png[png.find(urlTest)+len(urlTest):]
- print("Get image: " + str(png))
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s = ssl.wrap_socket(s)
- s.connect((host, 443))
- s.sendall(b'GET ' + png.encode() + b' HTTP/1.1\r\nHOST: utm.md\r\n\r\n')
- reply = b''
- while select.select([s], [], [], 3)[0]:
- data = s.recv(2048)
- if not data: break
- reply += data
- headers = reply.split(b'\r\n\r\n')[0]
- image = reply[len(headers)+4:]
- # save image
- if png[-1] == "'":
- png[-1] = ''
- try:
- f = open('img/' + png.replace('/', '-'), 'wb')
- f.write(image)
- f.close()
- except:
- pass
- s.close()
- for png in pngs:
- my_thread = threading.Thread(target=down, args=(png,))
- my_thread.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement