我有一个简单的网络爬虫来请求从网站的网站地图,我需要缓存和索引的所有页面。在几次请求之后,网站开始提供空白页面。
他们的robots.txt中除了指向他们网站地图的链接之外什么都没有,所以我假设我没有违反他们的“规则”。我有一个描述性的标题,它准确地链接到我的意图,我爬行的唯一页面是从他们的网站地图。
http状态码仍然正常,所以我只能想象他们在短时间内阻止了大量的http请求。请求之间的合理延迟量是多少?
有没有其他我忽略的可能导致这个问题的考虑因素?
发布于 2009-04-28 16:12:02
每个站点都有不同的爬虫和滥用特征。
任何爬虫的关键是模仿人类的活动,并遵守robots.txt。
一次详尽的爬行会让一些网站绊倒,不管你的速度有多慢,它们都会关闭你,而有些主机并不介意爬虫一口气把所有东西都吸光。
如果所有其他方法都失败了,那么请求速度不要超过每分钟一个页面。如果一个网站以这种速度屏蔽了你,那么直接联系他们--他们显然不希望你以这种方式使用他们的内容。
发布于 2009-04-28 16:15:56
我猜维基百科上有关于这个话题的a decent reference。遵守它们,出于礼貌,多一点。
例如,我可能会将连接速度最大化为每秒一次命中,否则我将冒着无意中遭受DoS攻击的风险。
https://stackoverflow.com/questions/798695
复制相似问题