Многопоточный скрипт для HTTP-кодов состояния - PullRequest
0 голосов
/ 05 ноября 2018

Привет сообщество Stackoverflow,

Я хотел бы создать сценарий, который использует многопоточность для создания большого числа параллельных запросов кодов состояния HTTP для большого списка URL-адресов (более 30 тысяч экземпляров).

Запросы могут выполняться с того же сервера, на котором размещены веб-сайты.

Я использовал многопоточные запросы curl, но я не очень доволен полученными результатами. Для полной проверки 30k хостов требуется больше часа.

Мне интересно, есть ли у кого-нибудь советы или есть более эффективный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

После тестирования некоторых доступных решений самым простым и быстрым способом было использование webchk

webchk - это инструмент командной строки, разработанный в Python 3 для проверки кодов состояния HTTP и заголовков ответов URL-адресов

Скорость была впечатляющей, выходной был чистым, он разобрал 30 тыс. Vhosts примерно за 2 минуты

https://webchk.readthedocs.io/en/latest/index.html

https://pypi.org/project/webchk/

0 голосов
/ 05 ноября 2018

Если вы ищете параллелизм и многопоточные подходы для выполнения HTTP-запросов с Python, то вы можете начать с библиотеки aiohttp или использовать популярный пакет requests. Многопоточность может быть выполнена с помощью multiprocessing из стандартной библиотеки.

Вот обсуждение ограничения скорости с клиентом aiohttp: aiohttp: ограничение скорости параллельных запросов

Вот обсуждение того, как заставить многопроцессорную работу работать с requests https://stackoverflow.com/a/27547938/10553976

Обеспечение его работоспособности - это вопрос вашей реализации. Обязательно профилируйте свои попытки и сравните с текущей реализацией.

...