您的位置:首页 > 新闻资讯 >文章内容
代理IP网络爬虫如何控制采集速度?
来源:互联网 作者:admin 时间:2019-11-20 09:39:46

  大家知道在大数据时代,每天互联网上进行得最频繁的一个操作是什么吗?答案其实已经非常呼之欲出了,就是用代理IP进行网络爬虫抓取,这个动作每时每刻都在进行。


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


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


  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受到限制的问题,但我们还是要注意分析不同网站的反爬机制。


相关文章内容简介
推荐阅读
  • 29 2020-09
    爬虫加代理的三种方式

    在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,

  • 21 2020-09
    ip在线代理服务的优点

    用户使用代理ip,是出于各种各样的原因,有的是因为要换ip来访问网站,有的是因为要用动态ip代理来进行投票,还有的是因为要用于网络爬虫项目。

  • 30 2020-03
    换ip软件能保护隐私吗

    在网络时代,在用网络的过程中个人信息是很容易被泄露的。被一些商家收集后,个人信息、消费习惯等,都会被利用,对我们使用网络带来了一些隐患。那么,换IP能保护隐私吗?下面就一起

  • 22 2020-04
    关于代理ip的用途

    网络世界蕴藏着无数机会也蕴藏着无数的危险,特别是关于网络安全方面的问题更是牵扯着无数人的心,很多用户在使用代理ip之前都曾遭遇过网络攻击,导致了许许多多的数据损失。所以,为

  • 19 2019-11
    如何用代理IP组成一个本地IP池?

    一个本地的IP池是由什么组成的呢?要怎么才能够搭建一个本地IP池?下面就让代理IP来告诉大家。

  • 11 2019-01
    哪个代理IP好用?推荐效果不错的代理IP

    很多人商家都想刷单,但又担心多刷回导致IP被封;做网络营销推广的人也担心发帖太多而导致IP地址被封,更害怕账号都被封了等等,网络的发展,许多人的工作都需要使用换IP工具,代理IP就

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部