#php #python #curl #httprequest #httpresponse
#php #python #curl #httprequest #httpresponse
Вопрос:
Мне нужно часто проверять коды ответа http на десятках тысяч URL-адресов. Какой способ в PHP или python был бы наиболее эффективным для этого?
В PHP я начинаю с последовательных запросов:
function get_http_response_code($domain1) {
$headers = get_headers($domain1);
return substr($headers[0], 9, 3);
}
IF ($check){
foreach ($check as $id => $url) {
$get_http_response_code[$id] = get_http_response_code($url);
echo $url." -> ".$get_http_response_code[$id]."n";
}
}
Это занимает около 0,5 — 1 секунды на запрос:
200 request time in ms: 920.52ms
200 request time in ms: 1123.08ms
200 request time in ms: 1327.84ms
200 request time in ms: 610.86ms
200 request time in ms: 1122.79ms
200 request time in ms: 1226.19ms
200 request time in ms: 1120.73ms
200 request time in ms: 917.12ms
200 request time in ms: 851.57ms
Я пытаюсь либо улучшить, либо выполнить несколько запросов параллельно. Какой был бы наилучший способ выполнить эту задачу?
Комментарии:
1. В python есть несколько способов добиться этого, один из которых вы можете рассмотреть aiohttp.readthedocs.io/en/stable . Я проголосовал за закрытие, поскольку не думаю, что этот вопрос достаточно специфичен, чтобы получить полезный ответ, и в Интернете уже есть много ресурсов, которые адресуют одновременное выполнение http-запросов.
2. многопоточность python и будущие запросы
3. @SuperShoot Спасибо за вашу помощь. Я заглянул в библиотеку и понял, что существует множество возможностей. Однако мой вопрос, на мой взгляд, достаточно конкретен, поскольку я рассматриваю возможность увеличения общего времени обработки с помощью предоставленного PHP algo или любого другого решения. Я также обновил вопрос, включая теперь время ответа.