注意: 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. 16

    2019-10

    用HTTP代理IP投票真的安全吗?

    用HTTP代理IP投票真的安全吗?现在很多网络营销都会采用投票方式来推广,网络投票比的就是刷票,这话说的非常对,谁票数高,谁排名就好。由于投票是程序输入,没有人员监督参与,无法避

  2. 21

    2019-05

    短效和长效代理ip有什么区别

    代理ip分短效和长效,都适合什么人使用?估计代理IP这个词,大家都不少听说吧,但是你知道代理IP的一些知识么?知道怎么用么?知道都有哪些人使用么?说起代理IP的应用其实网上又很多介

  3. 28

    2019-04

    爬虫过程中的代理ip的使用

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

  4. 12

    2019-11

    使用高匿代理ip为什么还是被封?

    使用高匿代理ip为什么还是被封?代理ip现在的使用非常普及,很多网络工作者为工作的安全和效率选择了高匿名代理ip,可是还是出现了被封的情况,让用户感到十分疑惑,使用高匿代理ip为什么

  5. 06

    2019-07

    高效稳定的代理IP是爬虫工作者的首选

    随着大数据和智能化时代的发展,爬虫作为重要的数据来源,也日渐重要。爬虫工作者自身需要一些技术来适应时代的要求,作为一个优秀的爬虫工程师,对于爬虫策略与反爬虫策略要有很深的

  6. 07

    2019-09

    如何选择合适的付费IP代理供应商?

     如何选择合适的付费IP代理供应商?大数据时代,数据采集成为多家公司的日常任务。为了提高爬虫的工作效率,一般都会选择使用代理IP。目前网络上的付费代理产品也不少,那该如何选择合