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

爬虫的速度会影响目标网站的服务器。 所以,为了不给目标网站造成不必要的损失,爬虫的速度一定要控制好,不能太快,也不能太慢,没有耐心,那么如何限制爬虫速度呢? 我们来看看用IP模拟器代理优化爬虫速度的问题。  

 
1. 控制爬虫速度 
 
1) 初始化:设置初始延迟时间 T0 和比例系数 Kp(典型值 -0.05);  [ h]
2)目标设定:设置爬虫速度S,如每分钟40页;  
 
3)测量:统计每分钟n个爬虫爬取的网页数,可能是32,也可能是100;  
 
4)Compare:比较n和S的大小;  
 
5) Execute:如果n大于S,则表示速度太快,所以增加延迟; 如果 n 大于 S 如果它很小,则表示太慢,因此减少延迟。  
 
该方案的公式如下: 
 
Tk=Tk-1+Kp*(Sn) (3.1)
 
其中k=1, 2, 3 。  .. , Tk 是为第 k 次设置的延迟时间。  
 
不要被表达式吓到了,其实意思就是步骤5)中描述的执行过程:速度太快(Sn小于0,则Kp*(Sn)为正)  , 增加延迟时的速度(Tk 大于Tk-1); 速度太慢(Sn大于0,Kp*(Sn)为负),减小延迟(Tk小于Tk-1)。  
 
假设初始延迟时间T0为1.0s,比例系数Kp为-0.05,爬行速度S设置为40页/分钟。 如果一个爬虫爬取的网页数为n=100,根据公式3.1计算的延迟值为T1=T0+Kp*(Sn)=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模拟器代理,千万IP池满足爬虫需求。