7

爬虫是否必须在重复命中同一服务器之间等待一些标准持续时间,以免服务器负担过重。

如果没有,任何关于什么可以是爬虫的良好等待期的建议被认为是礼貌的。

这个值是否也因服务器而异......如果是这样,如何确定它?

4

4 回答 4

3

IBM 上的这篇文章详细介绍了 Web 爬虫如何使用机器人排除协议Web 爬虫中的重新爬取间隔设置

引用文章。

第一次爬取页面时,爬虫使用页面被爬取的日期和时间以及指定的最小和最大重新抓取间隔的平均值来设置重新抓取日期。在该日期之前不会重新抓取该页面。在该日期之后重新抓取页面的时间取决于抓取工具的负载以及抓取空间中新旧 URL 的平衡。

每次重新抓取页面时,爬虫程序都会检查内容是否已更改。如果内容发生了变化,下一次重新抓取间隔会比上一次短,但绝不会短于指定的最小重新抓取间隔。如果内容没有改变,下一次重新抓取间隔将比上一次长,但永远不会超过指定的最大重新抓取间隔。

这是关于他们的网络爬虫的,但在构建自己的工具时非常有用。

于 2009-04-28T18:26:40.837 回答
1

我知道这可能有点晚了,但答案并没有帮助我解决这个问题。我也担心爬虫多久会访问服务器。尤其是阅读 wikipedia.org robots.txt,其中禁止“每秒点击多次,不可接受”的机器人。

我发现了这篇有趣的 MS Research 文章,标题为 Web Crawler Architecture - http://research.microsoft.com/pubs/102936/EDS-WebCrawlerArchitecture.pdf。以下是关于礼貌的论文。

有许多可能的礼貌政策;一个特别容易实现的方法是禁止对同一 Web 服务器的并发请求;稍微复杂一点的策略是等待与上次下载时间成正比的时间,然后再次联系给定的 Web 服务器。

于 2012-03-15T05:00:36.887 回答
0

我认为访问网站的频率没有最小间隔,因为它高度依赖于当前的服务器负载和服务器能力。

您可以尝试测试响应时间和超时率,如果某个站点响应缓慢或出现超时错误,您应该增加重新点击间隔,即使它可能不是您的爬虫导致缓慢或时间-出局。

于 2009-04-28T19:05:19.760 回答
0

这将取决于内容更改的频率。例如,与具有静态文章的网站相比,更频繁地抓取新闻网站是有意义的。

至于究竟如何确定最佳值 - 这将取决于您如何根据拥有最新数据的价值来判断获取、索引等的成本。这完全取决于您 - 但您可能必须使用一些启发式方法来根据观察结果计算出网站随时间变化的程度。如果一个站点连续 3 次提取都没有改变,那么您可能希望在下一次提取之前等待更长时间。相反,如果一个站点在您每次获取它时总是发生变化,那么您可能希望更积极一点以避免错过更新。

于 2009-04-28T18:23:26.397 回答