您的位置:首页 > 新闻资讯 >文章内容
采集数据如何控制爬虫抓取的频率?
来源:互联网 作者:admin 时间:2019-02-26 15:40:53

  采集数据如何控制爬虫抓取的频率?为什么要控制爬虫的抓取频率,这是因为如果爬取太快,会增加网站服务器的负载,而且过快的采集,会被网站检测到,因此为了不被发现,势必要控制爬虫抓取的频率。


  在robot.txt协议里面定义Crawl-delay来确定抓取的频率也是一种网站的通用的做法,对于一般的抓取而言,10到20秒抓取一次是一个比较保险的频率,也有提出10*t的抓取间隔(t是download时间)比较合理。下面来看看具体的方案:


采集数据如何控制爬虫抓取的频率?


  1.最快速的方案-使用HTTP代理


  使用HTTP代理+异步IO,每秒可以处理100左右的HTTP请求(根据机器配置和网络而定)。但是免费的HTTP代理一是需要自己来抓,二是并不稳定。如果使用付费的HTTP代理,这个需要钱了。


  2.更简单的方案-多线程


  每次开2-4个线程来访问页面,也就是同时只能处理2-4个HTTP请求,然后一直跑下去,如果需要爬去的数据量不多,这个是最简单的解决方案。比如处理一次HTTP请求需要200ms,每次处理4个请求,一秒可以抓取20个页面,一天可以抓取20*60*60*24=1728000。


  3.最合适的方案-分布式


  使用多线程+分布式,比如一台机器抓取一天可以抓取172w数据,两台就是344w数据。


  4.最终解决方案-分布式+HTTP代理


  根据之前爬去拉勾网的时实践,同一个IP同时发送4个HTTP请求是不会被ban的,所以一个IP可以保证4个HTTP并发量,如果有10个HTTP代理,每秒就可以获取200个页面,一天可以爬去200*60*60*24=17280000个页面。最好是分布式不使用代理,因为每加一台机器,就相当于多了一个IP。


  具体的一个IP的并发量需要自己测试,不过最好一个IP同时只处理一个HTTP连接。


  上文分析了在采集数据时,如何控制爬虫抓取的频率的问题,最好的方案是使用分布式以及HTTP代理,代理可以使用代理精灵,因为IP可以使用全国的,范围比较广,数量自然多,使用效果也好。


相关文章内容简介
推荐阅读
  • 13 2019-06
    数据采集离不开代理ip的支持

    数据采集离不开代理ip的支持,因为现在数据产生比较快,我们需要分析一件事情,可能需要分析很多的信息才能挖机到有价值的资料。而要用大量的信息,并不是任你使用的,这需要去一些平

  • 21 2019-03
    爬取大规模数据必备高效代理IP和分布式爬虫

    学习Python爬虫,必然是想要爬取大规模数据,如果还想单个单个来爬取数据,那还不如人工采集呢?何必花时间花成本去做网络爬虫进行采集,是吧。但是想要爬取大规模数据,我们需要准备一

  • 15 2019-06
    代理ip质量好坏的影响

    代理ip质量好坏的影响,大家有没有体会?如今在个网络时代,为了突破一些平台的某些限制,使用代理ip也是非常的正常,不过代理ip质量有差别的,这对项目有什么影响呢?

  • 04 2019-06
    Socks代理比其他代理快吗

    Socks代理比其他代理快吗?啥是socks5代理,可能还有很多人都不知道的,来我们简单说说。socks5代理采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。

  • 28 2019-04
    用高匿IP代理上网会被查到真实IP吗?

    用高匿IP代理上网会被查到真实IP吗?虽然说高匿能隐藏IP地址,但是有些人还是不放心的,就怕什么时候这IP地址就被爆出来了。

  • 19 2019-03
    静态代理模式的简单分析--提供一种中间代理

    静态代理跟动态代理不一样,我们平常使用动态代理比较多,像一些需要频繁更换IP的项目都是找动态代理的,那么静态代理有什么用呢?

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961