Выполнение 5000 запросов Fast Python MultiThreading - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть 5000 URL, чтобы сделать запрос и проверить конкретное слово внутри источника каждого URL

Я хочу сделать это как можно быстрее, я новичок в Python

этомой код

import requests
def checkurl(url):
    r = requests.get(url)
    if 'House' in r.text:
        return True
    else:
        return False

если я сделаю цикл, это займет много времени, поэтому мне нужно решение для многопоточности или многопроцессорной обработки

Заранее спасибо за помощь:)

1 Ответ

0 голосов
/ 26 декабря 2018

Проверьте scrapy (на https://scrapy.org/), есть инструменты для вашей цели.

По моему опыту, scrapy лучше, чем просто загрузка "строк", поскольку requests.get нет (как пример)фактически отображает страницу.

Если вы все равно хотите сделать это с запросами (написанными от руки, поэтому могут содержать орфографические / другие ошибки):

import requests
from multiprocessing import ThreadPool    

def startUrlCheck(nr):
   pool = ThreadPool(threads)
   results = pool.map(checkurl, YourUrls)
   pool.close()
   pool.join()
   # Do something smart with results
   return results

def checkurl(url):
    r = requests.get(url)
    if 'House' in r.text:
        return True
    else:
        return False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...