Вот несколько вещей, которые вы должны учитывать, и вещи, которые я изучил при написании супербыстрого веб-скребка с Java и Jsoup:
- Самый важный из них - юридический аспект, разрешает ли веб-сайт сканировать идо какой степени они позволяют использовать свои данные.
- Задержка задерживается, но добавление пользовательских агентов, совместимых с robots.txt, является более предпочтительным.Я наблюдал значительное увеличение времени отклика при изменении пользовательского агента со значения по умолчанию на robots.txt.
- Если сайт позволяет и вам нужно сканировать большое количество страниц, что было разрешено для одного из моих предыдущих проектов, вы могли быиспользуйте theadexecutor для одновременной загрузки N страниц.Это превращает часы работы по сбору данных с помощью однопоточного java web scrapper всего в пару минут.
- Многие пользователи из черного списка ISP, которые выполняют программируемые повторяющиеся задачи, такие как веб-сканирование и настройка серверов электронной почты.Его варьируется от провайдера к провайдеру.Ранее я избегал этого, используя прокси.
Когда веб-сайт имел время отклика 500 мс на запрос, мой веб-скрепер смог собрать данные с 200 тыс. Страниц с 50 потоками, 1000 прокси за 3 минуты.Соединение 100 Мбит / с.
Должны ли быть задержки между запросами?
Ответ: Это зависит от того, позволяет ли веб-сайт постоянно нажимать, тогда он вам не нужен, но долженлучше иметь это.У меня была задержка в 10 мс между каждым запросом.
Я попытался запустить свой код, чтобы просто получить 80 строк данных без каких-либо задержек, и у меня отключился интернет?
Ответ: Скорее всего.Интернет-провайдер может предположить, что вы осуществляете DOS-атаку на веб-сайт, и, возможно, временно / постоянно установил ограничение на ваше соединение.