@pillson

Блокировка ip при парсинге cURL php?

Добрый день
Делаю небольшой парсер для парсинга avito,
работает на curl, получаю dom и получаю ссылку и отправляю ее, при формировании запроса используются прокси (логин, пароль), формирование user agent, куки, запрос необходимо делать каждую минуту и по 30-40 ссылкам для парсинга, sleep() не помагает, ставил рандомно 2-5, но тут вторая проблема при слип, это то, что при среднем 2-3 секунды, скрипт запускается, можно конечно разбить, но хочется понять как обходить блокировки при работе с большим количеством данных
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ответы на вопрос 2
@zkrvndm
Боты, парсеры, расширения
Парсеры чувствительные к таймингам писать лучше на JavaScript: либо в виде веб-сервиса, либо в виде NodeJS приложения. Конкретно в случае авито я бы написал веб-сервис, который парсит сайт используя мой бэкенд лишь в качестве прокси сервера работающего с другими прокси и не более.

P. S. Хотя уверен и на чистом PHP можно все как надо сделать, просто с моей точки зрения это сложнее, так как в PHP всегда беда была с многопоточность и синхронизацией - оно как бы все есть, но настраивается сложно.
Ответ написан
Комментировать
@d-sem
Использовать сочетание очередей (например RabbitMQ) и набор прокси серверов.

Алгоритм:
1. поставить ссылки на парсинг в очередь;
2. брать воркером из очереди;
3. если прокси не работает, брать другой прокси из списка.

Воркеров может быть несколько так что можно распараллелить.

Если блокировка на самом деле упирается лишь в IP - существуют платные сервисы, где можно покупать прокси и менять их динамически по API.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы