8

我有一个简单的网络爬虫,可以从网站的站点地图中请求我需要缓存和索引的所有页面。在多次请求之后,该网站开始提供空白页面。

除了指向他们的站点地图的链接之外,他们什么都没有robots.txt,所以我认为我没有违反他们的“规则”。我有一个描述性标题,可以准确链接到我的意图,并且我抓取的唯一页面来自他们的站点地图。

http 状态码都还可以,所以我只能想象它们在短时间内阻止了大量的 http 请求。请求之间的合理延迟量是多少?

是否还有其他我忽略的可能导致此问题的注意事项?

4

2 回答 2

9

每个站点都有不同的爬虫和它寻找的滥用特征。

任何爬虫的关键是模仿人类活动,并遵守 robots.txt。

详尽的爬网会绊倒一些网站,无论你走多慢,它们都会让你关闭,而一些主机不介意爬虫快速拉动并一次性吸走所有内容。

  • 通常,您不希望请求页面的速度超过每分钟 6 个(大约人类速度)。
  • 按照网页上的可见性顺序,您会更安全地跟随链接。
  • 尝试忽略网页上不可见的链接(很多人使用蜜罐)。

如果一切都失败了,请求的速度不要超过每分钟一页。如果网站以这种速度阻止您,请直接与他们联系 - 他们显然不希望您以这种方式使用他们的内容。

于 2009-04-28T16:12:02.110 回答
2

我猜维基百科对这个话题有很好的参考。服从他们,为了礼貌,多一点。

例如,我可能会以每秒一击的速度最大化连接速度,否则我会冒着无意的 DoS 攻击的风险。

于 2009-04-28T16:15:55.690 回答