Паутинный интервал для robots.txt - PullRequest
3 голосов
/ 10 марта 2011

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

Как часто нужно извлекать файл robots.txt для любого сайта?

Мой сценарий для любого конкретного сайта - очень медленное сканирование со 100 страницами в день. Допустим, веб-сайт добавляет новый раздел (/ people-only /), на который ссылаются другие страницы. И в то же время добавьте соответствующую строку в robots.txt. Паук может найти ссылки на этот раздел перед обновлением robots.txt.

Забавно, как запись проблемы дает решение. При формулировании моего вопроса выше я получил представление о решении.

Файл robots.txt может обновляться редко, например раз в день. Но все новые найденные ссылки должны быть приостановлены в очереди до следующего обновления robots.txt. После обновления файла robots.txt все ожидающие ссылки, которые проходят, теперь могут быть просканированы.

Какие-нибудь другие идеи или практический опыт с этим?

1 Ответ

5 голосов
/ 10 марта 2011

Все крупные веб-сканеры кэшируют файл robots.txt в течение некоторого периода времени. Один день довольно распространен, и в прошлом я видел целую неделю. Наш сканер имеет максимальное время кеширования 24 часа. На практике это обычно меньше, за исключением сайтов, которые мы сканируем очень часто.

Если у вас есть ссылки для ожидания будущей версии robots.txt, то вы добавляете искусственную 24-часовую задержку к вашему сканированию. То есть, если вы сканируете мой сайт сегодня, то вам придется хранить все эти ссылки до 24 часов, прежде чем вы снова загрузите мой файл robots.txt и убедитесь, что просканированные вами ссылки были разрешены в то время. И вы можете ошибаться так же часто, как и правы. Допустим, происходит следующее:

2011-03-08 06:00:00 - You download my robots.txt
2011-03-08 08:00:00 - You crawl the /humans-only/ directory on my site
2011-03-08 22:00:00 - I change my robots.txt to restrict crawlers from accessing /humans-only/
2011-03-09 06:30:00 - You download my robots.txt and throw out the /humans-only/ links.

Во время сканирования вам был разрешен доступ к этому каталогу, поэтому проблем с публикацией ссылок не было.

Вы можете использовать дату последнего изменения, возвращенную веб-сервером при загрузке файла robots.txt, чтобы определить, разрешено ли вам читать эти файлы в то время, но многие серверы лгут при возврате даты последнего изменения. Какой-то большой процент (я не помню, что это такое) всегда возвращает текущую дату / время как дату последнего изменения, потому что все их содержимое, включая robots.txt, создается во время доступа.

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

Большинство операторов сайта понимают, что такое кэширование robots.txt, и будут выглядеть иначе, если ваш бот попадет в каталог с ограниченным доступом на своем сайте в течение 24 часов после изменения robots.txt. конечно, при условии, что вы не читали robots.txt, а затем сканировали ограниченные страницы. Из тех немногих, кто ставит под сомнение поведение, обычно достаточно простого объяснения произошедшего.

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

...