Мультикурл PHP не обрабатывает все страницы

F3
На сайте с 09.08.2010
Offline
99
656

Всем привет! Пытаюсь забирать с помощью мультикурла на php страницы, делая около 100 одновременных запросов. При этом результат получается только для ~30 страниц, остальные не парсятся. Может кто подсказать, как сделать, чтобы забирались все страницы, или хотя бы бОльший процент.

Код ниже:

$mh = curl_multi_init();

$curl_array = array();
foreach($nodes as $i => $url)
{
$curl_array[$i] = curl_init($i);
curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_array[$i], CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl_array[$i], CURLOPT_TIMEOUT, 10);
curl_setopt($curl_array[$i], CURLOPT_HTTPHEADER, $headers);
curl_multi_add_handle($mh, $curl_array[$i]);
}
$running = NULL;
do {
usleep(100);
curl_multi_exec($mh,$running);
} while($running > 0);

$res = array();
foreach($nodes as $i => $url)
{
$res[$i] = array(curl_multi_getcontent($curl_array[$i]), $url);
}

foreach($nodes as $i => $url){
curl_multi_remove_handle($mh, $curl_array[$i]);
}
curl_multi_close($mh);
Каширин
На сайте с 03.01.2004
Offline
1030
#1

favorit345, curl здесь не при чем. Ты ж поди один сайт парсишь? Он тебя и блокирует. Прикрути прокси китайские, они самые лучшие.

F3
На сайте с 09.08.2010
Offline
99
#2

в 10-20 потоков идет нормально, иногда пустые страницы возвращаются. Обрабатываю рекурсивно остатки, все ок. Но хотелось бы одновременно. Может быть таймаут как-то можно поставить дополнительно, чтоб все страницы скачивались? Каждый раз разное количество скачивается, он банит по какому-то умному алгоритму?

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#3

Не по умному, а по обычному. Количество запросов с 1 Ip в секунду. У меня на серваке строго стоит 15 штук. Больше это уже ДДОС или вот такие вот боты.

Ставьте 5-7 потоков и всё. Пусть будет чуть медленнее, но зато точно.

Или используйте прокси.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий