@beduin01

Имеет ли смысл делать многопоточный парсер?

Пишу парсер большого сайта. Возник вопрос. Стоит ли его делать многопоточным?
1. Не приведет ли слишком много потоков к бану IP парсера? Проверить это можно только экспериментально?
2. Скорость парсинга вырастет пропорционально количеству потоков или не все так просто?
3. В какие ограничения я могу упереться из-за чего скорость расти не будет?
  • Вопрос задан
  • 3451 просмотр
Пригласить эксперта
Ответы на вопрос 2
gluck59
@gluck59
Виртуальный глюк
Делал парсер Ebay, сначала в один поток, потом мультикурлом. Скорость поднялась в 15 раз.
Чтобы не забанили, создал кучу разных юзерагентов и каждый раз рандомом скармливал мультикурлу новый.

Понятно, что IP все равно был один и тот же, но никто не знает, какой там механизм автобана (а их там есть). В итоге за год так и не забанили :)
Ответ написан
Комментировать
alekciy
@alekciy
Вёбных дел мастер
1. Конечно может привести. Перед граббингом всегда можно прочесть robot.txt на предмет наличия директив Crawl-delay/Request-rate. Однако реальные цифры можно получить только в ходе работы (по возникновению HTTP статусов отличных от 200). По хорошему в ходе работы нужно копить статистику и динамически подстраивать скорость обхода.
2. Нет, как и в обычной технике не пропорционально. Степень падения КПД зависит от конечно архитектуры приложения.
3. Различного рода блокировки (I/O диска/сети, записи в базу, прочее), ограничения ОСи (количество открытых портов, лимиты на I/O диска), низкая скорость отдачи со сграбливаемого ресурса.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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