注意: IP精灵代理仅提供国内ip网络节点,不提供境外网络节点,不能用于任何非法用途或访问境外封闭网站,不能跨境联网,只能用于合法的国内网络加速。

您好,请登录 没有账号?

首页 > 新闻资讯 > 大量采集数据,爬虫如何运用多线程?

大量采集数据,爬虫如何运用多线程?

来源:互联网 作者:admin 时间:2019-01-29 17:55:57

一般使用到爬虫的项目,需要抓取的任务量并不低,但靠单线程是无法满足抓取的效率,于是爬虫通过使用代理IP,多IP的使用,采用多线程的方法来大量抓取数据,这爬虫如何运用多线程呢?


Thread使用方法为:


大量采集数据,爬虫如何运用多线程?


threading.Thread(target=线程运行的函数,args=(参数)) 其中参数用逗号分隔,并以逗号结尾。


随后使用start启动。


运行结果如下:


大量采集数据,爬虫如何运用多线程?


可以看到五个线程同步运行,因sleep设置的时间相同,所以也同步结束。


但有一个缺点是第16行代码在五个线程启动后随即也就运行了,相当于此时主线程已经结束了而那五个子线程还在运行。


控制策略有两个


在start之前把子线程设置为守护线程


修改代码如下:


大量采集数据,爬虫如何运用多线程?


运行结果如下:


大量采集数据,爬虫如何运用多线程?


子线程在主线程结束的时候也同步结束,未运行的部分也就不再运行了。


在主线程中使用join,让主线程挂起等待子线程结束


修改代码如下:


大量采集数据,爬虫如何运用多线程?

大量采集数据,爬虫如何运用多线程?


从运行结果可以看到主线程停留在t.join()的位置,一直等到五个子线程全部结束后才开始继续向后运行。


以上就是需要用到的threading模板里所有的东西了。


在整理好需要处理的数据列表后,我们只需要将列表分段分别交给不同的线程来处理,主线程等待所有数据处理完毕之后再进行下一步操作,如下:


大量采集数据,爬虫如何运用多线程?


运行结果如下:


大量采集数据,爬虫如何运用多线程?


综上可知,爬虫如何运用多线程的方法,五个线程分步处理各自被分配到的数据,总体运行时间大幅缩减。当然机器给力的话,可以增加线程数,得到更快的速度。


最新资讯

推荐阅读

  1. 15

    2019-04

    爬虫过程中代理ip的使用

    在实际的爬虫抓取的过程中,由于会存在恶意采集或者恶意攻击的情况,很多网站都会设置相应的防爬取机制,通常防爬程序都是通过ip来识别机器人用户的,因此充足可用的ip信息可以为我们

  2. 15

    2019-02

    用代理换IP后,还能查到我的地址吗

    使用代理是可以更换上网的IP地址,访问的服务器可以只记录代理IP地址,不能看到我使用的IP地址,这样别人还能查到我的地址吗?

  3. 11

    2018-12

    建IP池用什么代理IP?预防IP被封的措施有哪些?

    如果使用爬虫爬取数据资料,需要使用IP池来切换IP,实现多次访问获取数据,那么你知道IP池怎么搭建的吗?搭建IP池需要代理IP,建IP池用什么代理IP好?

  4. 14

    2019-08

    用代理IP上网保护隐私

    现在大家越来越看重个人信息的安全,避免被平台抓取利用,所以要保护好,避免带来损失。代理IP是用来换IP的软件,其实用代理IP上网也可以保护隐私。很多浏览器是对用户的上网记录保存,

  5. 20

    2019-06

    如何获取代理IP

    如何获取代理IP?获取代理IP可以在网上直接搜索关键词就可以了,也可以通过广告或者各种网络渠道。在搜索后就可以发现网上有很多代理IP软件,可以说是各种各样,只要找到符合自己想要的

  6. 01

    2019-03

    在多线程中怎么调用动态代理IP

    一个简单的爬虫是非常容易编写的,只要熟悉基本的一些结构就行,但是要爬取大量的数据时,简单的爬虫根本不顶用,需要使用多线程或者多进程等。使用多线程虽然是可以提高爬虫的效率,