Загрузка...

Imgur Photo Scraper

Тема в разделе Python создана пользователем murser 17 сен 2019. 307 просмотров

Загрузка...
  1. murser
    murser Автор темы 17 сен 2019 Курлыкает на онемэ 12 25 апр 2017
    Код

    import requests
    import threading
    import shutil
    import concurrent.futures
    import random
    import hmac, hashlib
    import os

    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
    alph = "aA8b0B0cC1dDe2EfF3gGh4HiI5jKk6LlM7m1N6n8OoP9pQq6RrSsTt5Uu9Vv2WwVxX3y4YzZ"
    n = []

    def gen():
    g = random.choices(population=alph, k=7)
    return ("".join(g))

    def down(url):
    r = requests.get(url, stream=True,headers=headers)
    if r.status_code == 200:
    with open("img/%s" %(url.split("/")[-1]) , 'wb') as f:
    r.raw.decode_content = True
    shutil.copyfileobj(r.raw, f)
    if hmac.new(bytearray('signature','utf-8'), bytearray(r.text,'utf-8'), hashlib.sha256).hexdigest() == "4b227e6257f16f58a2ed40a91998ae943a5ea5cc7bbb08932293ca6f613ccd65":
    os.remove("img/%s" %(url.split("/")[-1]))
    else:
    print("Saved: %s" %url)
    n.append(1)
    if len(n) % 200 == 0:
    print("Used: %s"%len(n))

    with concurrent.futures.ThreadPoolExecutor(max_workers=200) as executor:
    threads=[executor.submit(down,"https://i.imgur.com/%s.png"%gen()) for i in range(10000)]


    Небольшой пост, посвященный скраперу фоток, он генерирует ссылку на фото и если это фото было загружено пользователем, то оставляет его в папке img. Работает в 200 потоков (поменять max_workers, для каждого компьютера и интернета свой параметр) в последней строке "for i in range(10000)" вместо 10000 можна написать любое число генераций, ссылки.
    Кстати, еще написал такой-же для prnt. sc, но вот с ним все немного сложнее и легче одновременно, там защита от парсинга но, фотографии попадаються в 98% запросов, за сегодня на него убил 3к ******, среди картинок, есть паспорта, карточки, *********,пароли и всякий шлак(в основном шлак).
    А теперь главный вопрос у кого-нибудь есть варианты как парсить prnt. sc, не перебирая тысячи ******? Мой вариант через tor, но скорость упадет, да и работать будет лишь на linux, вроде.
     
Top