您的位置: 首页 > 新闻资讯 > 正文

爬虫速度怎么限制?优化爬虫速度方法

发布时间:2018-11-22 14:27:25 来源:互联网

    爬虫的速度会影响目标网站的服务器,因此为了不给目标网站造成不必要的损失,要控制好爬虫的速度,不能太快,但也不能过慢,没有耐心等,那么爬虫速度怎么限制?下面跟黑洞代理一起去看看优化爬虫速度的问题。

爬虫速度怎么限制?优化爬虫速度方法

    一、控制爬虫速度

    1)初始化:设定初始延时时间T0和比例系数Kp(典型值-0.05);

    2)目标设定:设定爬虫速度S,比如40页/分钟;

    3)测量:统计每分钟内爬虫抓取网页的数量n,可能是32,也可能是100;

    4)比较:比较n和S的大小;

    5)执行:n如果比S大,说明太快,于是增加延时;n如果比S小,说明太慢,于是减小延时。

    该方案的公式化表示如下:

    Tk=Tk-1+Kp*(S-n)      (3.1)

    其中k=1, 2, 3 ... ,Tk是第k次设定的延时时间。

    不要被表达式吓住了,它所表达的意思其实就是步骤5)所描述的执行过程:速度太快 (S-n小于0,则Kp*(S-n)为正),增加延时 (Tk大于Tk-1);速度太慢 (S-n大于0, Kp*(S-n)为负),减小延时 (Tk小于Tk-1)。

    假设初始延时时间T0为1.0s, 比例系数Kp为-0.05,爬虫速度S设置为40页/分钟。如果某次爬虫抓取网页的数量n=100,根据3.1式计算的延时值T1=T0+Kp*(S-n)=1.0+(-0.05)*(40-100)=4.0;下一次可能的测量值n=30,则计算的延时值T2=4.0-0.05*10=3.5。

    合理控制爬虫速度是非常有必要的,如果爬虫速度快了,增加延时时间;如果爬虫速度慢了,减小延时时间。

    二、提高爬虫速度

    首先要先判断准目前的瓶颈在哪里,网络io、磁盘io,还是cpu等。然后才能具体问题具体分析。

    如果编程能力是瓶颈的话,增加多线程的特性是最具性价比的了,而且花不了多少开发的时间。不过后续的问题可能就比较多了,代码也不是几行能搞定的了。

    cpu瓶颈的话可以通过分布式的方式来解决,更多的结点去处理分发的任务就好了。

    本地带宽的瓶颈通过云服务器解决(一般都有100MB的方案提供),定时定量的去购买使用可以节约成本(毕竟不是搜索引擎不会一直开着的),目标服务器的带宽限制(基于IP的)通过跨区的服务器解决,云服务器提供商有多个机房的,分散节点所在的机房可以缓解问题,有提供动态ip的就更好了。

    上文介绍了控制爬虫速度以及提高爬虫速度的方法,仅供参考!建议在爬取数据时,要注意不要给目标网站造成过大的压力,在抓取过程中,遇到IP被限制问题,可以使用代理IP突破限制,更好的提升采集速度。使用代理IP,选择黑洞代理,上千万的IP池满足爬虫的需求。


相关文章内容简介

1 爬虫速度怎么限制?优化爬虫速度方法

 ∵ ∵爬虫的速度会影响目标网站的服务器,因此为了不给目标网站造成不必要的损失,要控制好爬虫的速度,不能太快,但也不能过慢,没有耐心等,那么爬虫速度怎么限制?下面跟黑洞代理一起去看看优化爬虫速度的问题。 ∵ ∵一、控制爬虫速度 ∵ ∵1)初始化:设定初始延时时间T0和比例系数Kp(典型值-0.05); ∵ ∵2)目标设定:设定爬虫速度S,比如4... [阅读全文]

最新标签

在线客服

QQ咨询

上班时间