网络爬虫对对方服务器造成的压力到底有多大(汇总整理)


一些大型的网站都会有 robot.txt,这算是与爬虫者的一个协议。只要在robot.txt允许的范围内爬虫就不存在道德和法律风险,只不过实际上的 爬虫者一般都不看这个。控制采集速度。过快的采集会对网站服务器造成不小的压力,如果是性能差的小站可能就会被这么搞垮了。因此放慢采集速度相当于各退一 步,既给网站减轻压力,也降低自己被封禁的风险。爬虫目前在法律上尚属灰色地段,但爬别的网站用于自己的商业化用途也可能存在着法律风险。非法抓取使用 “新浪微博”用户信息 “脉脉”被判赔200万元,这是国内的一条因爬虫被判败诉的新闻。所以各商业公司还是悠着点,特别是爬较为隐私的数据。

百家网络博客抓取情况
可以看到现在几乎维持在200~300/天的这个范围,不要以为11.28~12.13抓取频次非常高,甚至有的时候还达到了900频次,后来怎么降下来了啊,是不是降权了啊,我可以告诉你,这段时间都是极不正常的,只有降下来之后的才是正常的现象,而且在高峰期之前也是200~300频次的,即大部分都是200~300频次。对此我得出结论:个人博客站点蜘蛛的正常访问频次为200~300次/天,为了使得结果的科学以及具有说服性,我还问过一些资深站长,他们反映蜘蛛对他们站点的抓取也是 200~300次/天。


抓取压力就是百度蜘蛛baiduspider在单位时间内对网站服务器访问的频率和总次数。
那么Baiduspider对一个网站服务器又是如何造成抓取压力的?
为了达到对目标资源较好的检索效果,Baiduspider需要对您的网站保持一定量的抓取。百度官方的解释说百度蜘蛛尽量不给网站带来不合理的负担,并会根据服务器承受能力、网站质量、网站更新等综合因素来进行自动调整。
要是你觉得baiduspider的抓取明显造成了服务器压力,你还可以提交申请进行抓取压力反馈?
第一步,登录百度站长平台:zhanzhang.baidu.com
第三步,选择左侧”网站分析”→“压力反馈”
第四步,在已认证归属的站点列表中选择需要查询的站点
第五步,得到站点抓取压力曲线图及压力调整入口页面
通过百度站长工具查看自己站点被百度spider访问的情况,并可调节百度spider每天访问网站的压力值,百度也会根据服务器压力自动调整抓取频率,不过如果不太了解百度spider爬取频率具体什么意义那么我们还是别自定义爬取频率比较好,工具包括以下两点功能:
查看最近一个月的天级抓取量趋势图
压力情况反馈,可调节天级抓取压力的大小,调整的数据作为参考,不保证生效


1)一要看爬虫写的怎么样,二要看网站应用写的怎么样。若爬虫爬的守规矩,网站写的也符合规范,则几乎没有影响。若不是,那就啥奇葩的事都会发生。
比如,某公司的网站只要有爬虫来爬(及其守规矩),服务器CPU就会从20%的水平直升到80%+的水平,响应时间由100ms增长到500ms+之上。大家含泪笑着说,难怪没人来DDOS,这个只要正常访问量多点就能挂掉的网站,一点DDOS的成就感都没啊。
2) 网络中的爬虫有很多,有大的搜索引擎公司的爬虫,比如google的Googlebot,百度的baiduspider,搜狗的sogou spider,有道的YodaoBot,腾讯的Sosospider,msn的是Msnbot。还有一些个人开发的用来尝试的小的爬虫。因此即使同一站点,对于网络中的不同爬虫的压力允许程度不同的。
3) 站点对于爬虫的压力允许程度不是公开的。 由于网络上的爬虫,站点不可能一一告诉各个爬虫其允许的压力程度。同时站点也大致都没有告诉爬虫其压力程度。站点都是在自己的服务器管理上添加爬虫访问的限制工具。当爬虫压力过大时直接封禁爬虫处理。
4)但是即便对于爬虫来说进行压力控制是一个困难的问题,但是对于一个正规的爬虫来说,如果想爬虫站点的数据,就不得不面对这个问题。 而站点的压力控制可以分为以下几点: 压力的形式:通常来说,压力主要分为两个部分:抓取间隔和并发度。抓取间隔是两次抓取时间的时间窗口。而并发度,则是同一时刻有几个线程或者进程在访问站点。比如抓取间隔为10s,并发度为1,就是每隔10s访问站点的1个链接。这两个参数决定了爬虫对站点的抓取压力。而且这两个参数的不同造成的压力是不相同的。比如说抓取间隔为10,并发度为10,是每隔10s访问站点的10个链接, 其在100s内访问的链接为100/10*10= 100个链接。而抓取间隔为100,并发为100,其在100s内访问的链接为100/100*100= 100个链接。虽然两个在100s。看起来访问的站点链接数量是相同的,但是对站点的压力来说是不同的。因为间隔为100,并发为100的这种压力,虽然间隔相对较长,但是在一个瞬时100的压力对站点来说可能会较大的。 对站点来说,一段时间访问总量过大会造成压力过大,而在同一时刻并发数较多,也是会造成压力过大的问题的。 压力的粒度:爬虫面对的是一个一个的站点,而实际上,爬虫抓取是经过dns解析成站点的ip,而站点和ip之间的关系是一种多对多的关系。即一个站点可能对外有多个ip,而一个ip上也可能有多个站点(通常是一些托管小站,托管在一个站点上)。 压力控制以站点为单位的话,逻辑上要简单。但是对于一个ip上多个站点可能会造成压力大的问题。而以ip为单位,则需要考虑一个ip上多个站点的轮转问题。同时一个站点多个ip时,还需要考虑多个ip上的压力分摊问题。 也可以采取<站点,ip>的二元组的粒度来控制压力。机制上相对复杂一些,但是可以更好的控制压力。 压力的计算:压力计算是压力控制的核心。其中有复杂的策略。后面单独介绍该问题。 压力的执行:理论的压力计算的再好,也需要按照计算的压力执行,才能达到预期的效果。这就要考虑抓取缓存的设置问题,缓存是有效的,因此不能无限制的将数据发给缓存。而缓存的数据如果不足,则会导致压力执行的中断,导致这段时间配额的浪费。
5) 压力计算的策略 压力计算主要考虑的因素: 站点规模:一般来讲,站点规模较大,站点的用户访问频度较多,站点的压力承受程度相对要大些。其可以作为一个参考因素。 站点质量:站点质量指站点的数据是否是特别需要的,即质量较高,并且可代替性较低。站点质量较高的站点,代表爬虫对其的抓取需求高。需要的抓取压力控制程度高。 站点成分:站点的成分一般指站点的索引页的比例。如果索引页较多,承担着其他站点提供索引的功能,则其可以帮助我们发现链接。应该为其提供相对多一些的抓取。 站点待抓比:站点的待抓取比高,表明站点的抓取需求大,希望抓取的数据更多一些。但是,计算站点待抓比时需要考虑历史因素,即由于历史因素的造成的待抓比高,不能觊觎短期内可以弥补而将压力调节的较大。 站点访问时间: 一般来讲,站点的访问时间较大时,代表站点的服务器压力较大。此时应该降低抓取压力,以造成对方服务器的崩溃或者对方的封禁。 站点的约定: 站点主动提供抓取压力说明时,应该控制抓取压力不超过对方设置的压力限制。 站点抓取结果: 如果站点的抓取成功比率降低时,一般表示站点的压力可能较大。此时应该注意降低站点压力,以避免无效的抓取和站点的封禁。而且这时的抓取可能会带来我们死链判断的误判。如果站点已经明确封禁或者发现站点封禁的话,则应该降低至很低的抓取压力,使用少量的几个url来测试站点是否解除封禁。

6)抓取压力需考虑的其他问题 上面是我们进行压力计算的时候需要考虑的问题,但是实际的问题是复杂的。比如站点规模较大只是代表了站点能承受的压力较大,但是站点如果对于爬虫不够友好的,则可能允许爬虫的压力较小。在设定了抓取压力时,我们也需要对我们的抓取情况进行监控统计,来观察按照我们计算的压力执行时,是否合理。另外,在具体环节中的情况多种多样。比如有些站点对于不同时段对于爬虫的压力允许程度是不同的。比如站点在早上八点到十点和下午两点到五点这种工作时间会有较多的用户访问,希望爬虫能避开这样的用户访问高峰来访问,对于时效性允许的网站我们应该考虑该问题。同时还有新闻这种时效性站点,可能在编辑的上班时间发布的新闻较多,这时候需要相对较大的抓取压力。而在晚上的时段则可能产生的新闻较多,我们对于新闻HUB也的抓取频度可以适当降低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值