收藏 400-998-9776 转2 服务时间 周一至周日 9:00-23:00 注意:本站不提供境外服务
您的位置:首页 >文章内容
如何合理的控制爬虫采集速度
来源:互联网 作者:admin 时间:2019-02-25 17:23:10

  对于爬虫的速度,并不是越快越好的,采集的速度越快,越是容易被发现,也就是说越容易被封。那么如何避免这个问题呢?如何合理的控制爬虫采集速度?


  我们首先来了解下关于爬虫采集速度过快会导致什么问题:


  1.对于我们来说,抓取速度太快将导致致服务器禁止访问,从而丢失大量有效数据,甚至需要重新抓取。


  2.如果速度太快,将给服务器造成过大的负载;控制采集速度,对于目标网站来说是一种礼貌。


  那么如何合理的控制爬虫采集速度,才能使它不至于太快呢?


  通常情况下,在每个页面抓取之间设定较大的延时等待以限制最大访问频率,可以保证既不会给服务器造成过重负担,也不会因访问太频繁而被服务器禁止,然而这样的方法将导致网络利用率低,抓取速度慢,对于大量网页的抓取任务来说,往往是无法忍受的。


如何合理的控制爬虫采集速度


  上图是一个简化的理想模型,可以很好的说明这个问题,假设某网站允许的最大访问频率为6页/分钟,于是最小时间间隔为10s,这个时间要通过很多次重复试验来确定。网络流畅时每个网页读取时间为0.5s,为了保证不被服务器屏蔽,至少要等待9.5s的间隔时间才继续抓取下一个页面,这个9.5s的间隔时间是固定的,即使网络较差时也要等待这么长的时间。网络较差时,网页读取时间为9.5s,再延时等待9.5s,于是每个网页的读取时间变为19s,几乎是网络流畅时的两倍。而实际上网络较差时的理想情况下,只需要等待0.5s,这时便保持和网络流畅时相同的抓取速度,由此可见这种限制最大速度的方法是很低效的。


  另外延时等待时间对抓取频率的影响是很模糊的,延时1s时抓取频率是100页/分钟,那么延时10s就是10页/分钟吗?很难确定,尤其是在复杂的网络环境中。


  要改进上述方法,一种很自然的解决方案就是:使等待时间动态变化,即等于最小时间间隔减去网页读取时间,这样就能保证网页平均抓取时间在网络流畅和网络较差时都为最小时间间隔。这种方法对于单线程的爬虫访问小规模网站来说也许可行,但在多线程分布式的爬虫访问大规模网站时,整体上的抓取时间由许多并行的抓取任务共同决定,并且各种异常情况(页面无效或者连接超时)使得抓取时间更加不可计算,这种方法就显得相当笨拙了。


  综合考虑各种因素,显然我们需要一种模糊的,不需要精确计算的方法来控制爬虫抓取速度,而且这个速度是很直观的以频率(页/分钟)来表示——PID控制算法就是其中一种。PID控制器控制爬虫速度的原理简单来说就是:速度快了,增加延时时间;速度慢了,减小延时时间。


  以上介绍了关于如何合理的控制爬虫采集速度的问题,既然不能快速采集,那么爬虫是如何提高效率的呢?可以使用代理IP,更换IP,即可以持续采集,比如使用智连代理。还可以使用多线程,多进程,这样肯定是比单线程采集更快的。


推荐阅读
  • 05 2019-03
    游戏太卡,怎么让游戏流畅些?

    越是好玩的游戏,越是多人去玩,如此火热,如果服务器负载过高,容易造成游戏卡,或者是其他的问题导致游戏卡顿,掉线,这肯定是不好的游戏体验。如果想玩游戏不卡,那么大家可以注意

  • 17 2019-06
    刷关键词排名用代理ip有效吗?

    刷关键词排名用代理ip有效吗?现在做网站并没有那么的好做,关键词上排名竞争激烈的,有些人就说用代理ip刷,这是否有效呢?

  • 28 2019-08
    简单易懂的代理IP上网方法!

    简单易懂的代理IP上网方法!日常生活中,我们上网可能不想使用自己电脑的IP,又或者需要换IP申请某某的东西,甚至可以看看一些限制的网站,怎么办呢?下面教大家一些用代理IP​上网的方法

  • 01 2019-02
    想找个性价比高的代理IP使用真难,如何找个好用的代理IP?

    有些朋友说很难找到能够满足自己需求的高质量代理IP。无法使用可以在线爬网的免费代理IP,而寻找代理IP服务提供商购买是各种限制,价格不便宜。那么如果我想自己构建一个代理IP池,这其

  • 20 2019-06
    开ip代理上网隐私更有保障

    开ip代理上网隐私更有保障,现在大家越来越注重个人信息的安全,避免个人信息被一些平台抓取到进而利用,如果要保护好,可以开ip代理上网隐私更有保障的,为何呢?

  • 11 2020-04
    智连代理暖春活动,开启优惠充值!

    “没有一个冬天不可逾越,没有一个春天不会来临。”虽然2020年的这个春天似乎要比往年要来得晚一些,但是纵然寒冬凛冽,春天还是会如期而至。