@nevesomostjke

Обход блокировки curl_multi, как?

Здравствуйте.
Использую curl_multi.
Примерно 100 запросов поступает к сайту. Данные надо грузить очень быстро, поэтому и curl_multi.

Проблема. Делается 27 запросов и срабатывает у сайта защита.
unsleep - не помогает.
do {
            $status = curl_multi_exec($mh, $active);
            if ($active) {
                curl_multi_select($mh);
            }
            while (false !== ($info = curl_multi_info_read($mh))) {
                //var_dump($info);
            }
        } while ($active && $status == CURLM_OK);
        
        foreach ($urls as $i => $url) {
            //usleep(200000);   
            $res[$i] = curl_multi_getcontent($conn[$i]);
            curl_close($conn[$i]);            
        }

Кто что подскажет?
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@nevesomostjke Автор вопроса
https://github.com/chuyskywalker/rolling-curl

Решает эту проблему.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим
Разбить запросы на группы по 20, и затем последовательно выполнять группы запросов. Ещё хорошо бы добавить задержку между ними:
- 20 запросов
- sleep(1)
- 20 запросов
- sleep(1)
- и тд

Задержку можно от 1 до 3х секунд ставить
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Используйте прокси для смены IP адреса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы