我有一个简单的网络爬虫,可以从网站的站点地图中请求我需要缓存和索引的所有页面。在多次请求之后,该网站开始提供空白页面。
除了指向他们的站点地图的链接之外,他们什么都没有robots.txt
,所以我认为我没有违反他们的“规则”。我有一个描述性标题,可以准确链接到我的意图,并且我抓取的唯一页面来自他们的站点地图。
http 状态码都还可以,所以我只能想象它们在短时间内阻止了大量的 http 请求。请求之间的合理延迟量是多少?
是否还有其他我忽略的可能导致此问题的注意事项?
我有一个简单的网络爬虫,可以从网站的站点地图中请求我需要缓存和索引的所有页面。在多次请求之后,该网站开始提供空白页面。
除了指向他们的站点地图的链接之外,他们什么都没有robots.txt
,所以我认为我没有违反他们的“规则”。我有一个描述性标题,可以准确链接到我的意图,并且我抓取的唯一页面来自他们的站点地图。
http 状态码都还可以,所以我只能想象它们在短时间内阻止了大量的 http 请求。请求之间的合理延迟量是多少?
是否还有其他我忽略的可能导致此问题的注意事项?
每个站点都有不同的爬虫和它寻找的滥用特征。
任何爬虫的关键是模仿人类活动,并遵守 robots.txt。
详尽的爬网会绊倒一些网站,无论你走多慢,它们都会让你关闭,而一些主机不介意爬虫快速拉动并一次性吸走所有内容。
如果一切都失败了,请求的速度不要超过每分钟一页。如果网站以这种速度阻止您,请直接与他们联系 - 他们显然不希望您以这种方式使用他们的内容。
我猜维基百科对这个话题有很好的参考。服从他们,为了礼貌,多一点。
例如,我可能会以每秒一击的速度最大化连接速度,否则我会冒着无意的 DoS 攻击的风险。