网络爬虫http请求的正确礼仪

时间:2009-04-28 16:02:52

标签: web-crawler etiquette

我有一个简单的网络抓取工具,可以从网站的站点地图请求我需要缓存和索引的所有网页。经过多次请求后,网站开始提供空白页面。

他们的robots.txt除了指向他们的站点地图的链接外没有任何内容,所以我假设我没有违反他们的“规则”。我有一个描述性标题,链接到我的意图,我抓取的唯一页面来自他们的站点地图。

http状态代码仍然可以,所以我只能想象它们会在短时间内阻止大量的http请求。什么被认为是请求之间的合理延迟量?

我是否忽略了可能导致此问题的其他考虑因素?

2 个答案:

答案 0 :(得分:9)

每个网站都有不同的抓取工具和滥用行为。

任何抓取工具的关键是模拟人类活动,并遵守robots.txt。

详尽的抓取会使一些网站绊倒,无论你走得多慢,它们都会让你失望,而一些主机并不介意爬行者一气呵成,一气呵成。

  • 一般情况下,您不希望以每分钟6次(约人速)的速度请求页面。
  • 按照网页上的可见性顺序,您将更安全地关注链接。
  • 尝试忽略网页上看不到的链接(很多人使用蜜罐)。

如果所有其他方法都失败了,请不要超过每分钟一页的请求。如果某个网站以此价格阻止您,请直接与他们联系 - 他们显然不希望您以这种方式使用他们的内容。

答案 1 :(得分:2)

我猜维基百科有关于该主题的a decent reference。服从他们,礼貌地再多一点。

例如,我可能会将连接速度提高到每秒一次,或者我冒着无意中的DoS攻击的风险。