Какова оптимальная продолжительность для поискового робота между повторными запросами к веб-серверу? - PullRequest
6 голосов
/ 28 апреля 2009

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

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

Это значение также варьируется от сервера к серверу ... и если да, то как его можно определить?

Ответы [ 4 ]

3 голосов
/ 28 апреля 2009

В этой статье о IBM подробно рассматриваются , как веб-сканер использует протокол исключения роботов и настройки интервала сканирования в веб-сканере

Цитировать статьи.

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

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

Речь идет об их веб-сканере, но он очень полезен для чтения при создании собственного инструмента.

1 голос
/ 15 марта 2012

Я знаю, что это может быть немного поздно, но ответы не помогли мне с этим вопросом. Я также обеспокоен тем, как часто сканер будет попадать на сервер. Особенно читая wikipedia.org robots.txt, где запрещены боты, которые «бьют много раз в секунду, недопустимо».

Я нашел эту интересную статью MS Research под названием Web Crawler Architecture - http://research.microsoft.com/pubs/102936/EDS-WebCrawlerArchitecture.pdf. Далее из статьи говорится о политенах.

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

0 голосов
/ 28 апреля 2009

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

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

0 голосов
/ 28 апреля 2009

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

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

...