【发布时间】:2010-05-29 22:24:43
【问题描述】:
这是与我的问题最接近的问题,但在 imo 中并没有得到很好的回答:
我正在寻找#1 的答案:
你应该每秒执行多少请求来抓取?
现在我从链接队列中拉出。每个被抓取的站点都有自己的线程,并在请求之间休眠 1 秒。我要求 gzip 压缩以节省带宽。
有这方面的标准吗?当然,所有大型搜索引擎在这方面都有一些他们遵循的准则。
【问题讨论】:
标签: screen-scraping
这是与我的问题最接近的问题,但在 imo 中并没有得到很好的回答:
我正在寻找#1 的答案:
你应该每秒执行多少请求来抓取?
现在我从链接队列中拉出。每个被抓取的站点都有自己的线程,并在请求之间休眠 1 秒。我要求 gzip 压缩以节省带宽。
有这方面的标准吗?当然,所有大型搜索引擎在这方面都有一些他们遵循的准则。
【问题讨论】:
标签: screen-scraping
wikipedia article on web crawling 有一些关于其他人在做什么的信息:
Cho[22] 使用 10 秒作为 访问间隔,以及 WIRE 爬虫 [28] 使用 15 秒作为 默认。墨卡托网络爬虫 遵循适应性礼貌政策: 如果下载一个需要 t 秒 来自给定服务器的文档, 爬虫等待 10t 秒之前 下载下一页。[29]莳萝 等。 [30] 使用 1 秒。
我一般会尝试 5 秒,有点随机,这样看起来不那么可疑。
【讨论】:
对此没有设定标准,这取决于网络抓取导致的负载量。只要您没有明显影响其他用户的网站速度,它应该是可以接受的抓取速度。
由于网站上的用户数量和负载不断波动,因此最好动态调整抓取速度。
监控下载每个页面的延迟,如果延迟开始增加,则开始降低抓取速度。本质上,网站的负载/延迟应该与您的抓取速度成反比。
【讨论】:
当我的客户/老板要求我做这样的事情时,我通常会先寻找公共 API,然后再对公共网站进行抓取。同时联系网站所有者或技术联系人并请求允许这样做可以将“停止和停止”信件保持在最低限度。
【讨论】: