Правильный этикет для http-запросов веб-сканера

У меня есть простой веб-сканер, который запрашивает все страницы из карты сайта, которые мне нужно кэшировать и индексировать. После нескольких запросов сайт начинает обслуживать пустые страницы.

В их ничего нет robots.txt кроме ссылки на их карту сайта, поэтому я предполагаю, что я не нарушаю их "правила". У меня есть описательный заголовок, который точно соответствует моим намерениям, и единственные страницы, которые я сканирую, принадлежат их карте сайта.

Коды состояния http все еще в порядке, поэтому я могу только представить, что они предотвращают большое количество запросов http за короткий промежуток времени. Что считается разумной задержкой между запросами?

Есть ли какие-то другие соображения, которые я упустил из виду, которые могут вызвать эту проблему?

2 ответа

Решение

Каждый сайт имеет свои характеристики поиска и использования.

Ключом для любого сканера является эмуляция человеческой деятельности и подчинение robots.txt.

Исчерпывающее сканирование отключит некоторые веб-сайты, и они закроют вас независимо от того, насколько медленно вы работаете, в то время как некоторые хосты не возражают против того, чтобы сканеры мчались и поглощали все сразу.

  • Как правило, вы не хотите запрашивать страницы быстрее, чем 6 в минуту (о человеческой скорости).
  • Вам будет безопаснее переходить по ссылкам в порядке видимости на веб-странице.
  • Старайтесь игнорировать ссылки, которые не видны на веб-странице (многие люди используют honeypot).

Если ничего не помогает, не запрашивайте быстрее, чем одна страница в минуту. Если сайт блокирует вас с такой скоростью, то свяжитесь с ними напрямую - они, очевидно, не хотят, чтобы вы использовали их контент таким образом.

Я думаю, что Википедия имеет достойную ссылку на эту тему. Повинуйтесь им и, ради вежливости, немного больше.

Например, я бы, вероятно, увеличил бы скорость соединения до одного удара в секунду, или я бы рискнул непреднамеренной DoS-атакой.

Другие вопросы по тегам