这是我问题中最接近的问题,并没有真正得到很好的回答:
我正在寻找#1的答案:
你应该做多少请求/秒?
现在我从链接队列中拉出来。每个被抓取的网站都有自己的线程,在请求之间休眠1秒钟。我要求gzip压缩以节省带宽。
这有什么标准吗?当然,所有大型搜索引擎都有一些关于此的指导方针。
答案 0 :(得分:6)
wikipedia article on web crawling有一些关于其他人正在做什么的信息:
Cho [22]使用10秒作为 访问间隔和WIRE 履带[28]使用15秒作为 默认。 MercatorWeb爬虫 遵循自适应礼貌政策: 如果花了t秒下载一个 来自给定服务器的文档 爬虫等待10秒钟 下载下一页。[29]莳萝 等。 [30]使用1秒。
我通常会尝试5秒钟,因为它看起来不那么可疑了。
答案 1 :(得分:3)
没有设定的标准,这取决于卷筒纸刮削的负载量。只要您没有明显影响其他用户的网站速度,它应该是一个可接受的抓取速度。
由于网站上的用户数量和负载不断波动,因此动态调整抓取速度是个不错的主意。
监控下载每个页面的延迟,如果延迟开始增加,则开始降低您的抓取速度。从本质上讲,网站的负载/延迟应该与您的抓取速度成反比。
答案 2 :(得分:1)
当我的客户/老板要求我做这样的事情时,我通常会在寻求公共网站之前寻找公共API。同时联系网站所有者或技术联系人并要求获得许可,将“停止和停止”信件保持在最低限度。