Проблема с очисткой данных с веб-сайтов - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь собрать данные путем очистки веб-страниц с помощью Java с помощью Jsoup.В идеале я хотел бы получить около 8000 строк данных, но мне было интересно, что такое этикет, когда речь заходит о доступе к сайту много раз.Для каждого из них мой код должен перемещаться в разные части сайта, поэтому мне нужно было бы загрузить 8000 (или более) веб-страниц.Было бы хорошей идеей ставить задержки между каждым запросом, чтобы я не перегружал сайт?Они не предлагают API из того, что я вижу.

Кроме того, я попытался запустить свой код, чтобы просто получить 80 строк данных без каких-либо задержек, и мой интернет отключен.Может ли запуск этого кода вызвать его?Когда я позвонил в компанию, автоматическое сообщение показало, что в этом районе нет службы, поэтому, может быть, я просто не заметил этого, пока не попытался запустить код.Любая помощь приветствуется, я очень плохо знаком с сетевым кодированием.Спасибо!

1 Ответ

0 голосов
/ 18 февраля 2019

Вот несколько вещей, которые вы должны учитывать, и вещи, которые я изучил при написании супербыстрого веб-скребка с Java и Jsoup:

  1. Самый важный из них - юридический аспект, разрешает ли веб-сайт сканировать идо какой степени они позволяют использовать свои данные.
  2. Задержка задерживается, но добавление пользовательских агентов, совместимых с robots.txt, является более предпочтительным.Я наблюдал значительное увеличение времени отклика при изменении пользовательского агента со значения по умолчанию на robots.txt.
  3. Если сайт позволяет и вам нужно сканировать большое количество страниц, что было разрешено для одного из моих предыдущих проектов, вы могли быиспользуйте theadexecutor для одновременной загрузки N страниц.Это превращает часы работы по сбору данных с помощью однопоточного java web scrapper всего в пару минут.
  4. Многие пользователи из черного списка ISP, которые выполняют программируемые повторяющиеся задачи, такие как веб-сканирование и настройка серверов электронной почты.Его варьируется от провайдера к провайдеру.Ранее я избегал этого, используя прокси.

Когда веб-сайт имел время отклика 500 мс на запрос, мой веб-скрепер смог собрать данные с 200 тыс. Страниц с 50 потоками, 1000 прокси за 3 минуты.Соединение 100 Мбит / с.

Должны ли быть задержки между запросами?

Ответ: Это зависит от того, позволяет ли веб-сайт постоянно нажимать, тогда он вам не нужен, но долженлучше иметь это.У меня была задержка в 10 мс между каждым запросом.

Я попытался запустить свой код, чтобы просто получить 80 строк данных без каких-либо задержек, и у меня отключился интернет?

Ответ: Скорее всего.Интернет-провайдер может предположить, что вы осуществляете DOS-атаку на веб-сайт, и, возможно, временно / постоянно установил ограничение на ваше соединение.

...