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

F3
На сайте с 09.08.2010
Offline
74
624

Всем привет! Пытаюсь забирать с помощью мультикурла на 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
994
#1

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

Умеешь программировать, знаешь English? Пиши в личку - есть работа
F3
На сайте с 09.08.2010
Offline
74
#2

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

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

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

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

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

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )

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