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

    2018-12

    学python3爬虫要掌握什么

    现在比较多人学习python语言,学python3爬虫要掌握什么?零基础学习python,首先要掌握python的一些库和模块,认识一下怎能看网页源代码,即使还不写,总得会看吧。

  2. 17

    2019-05

    如何获取高性价比爬虫代理IP

    国内代理IP和网络爬虫之间的关系用一部电视剧来形容最为恰当,这部电视剧就是大家耳熟能详的“潜伏”,利用高度机密的身份打入敌人内部获取情报。国内代理IP就相当于地下党余则成的一

  3. 21

    2019-05

    怎样通过拨号VPS搭建自己的代理IP池

    如何让爬虫畅通无阻地高效稳定地夜以继日地永不停息地工作,是无数爬虫工作者梦寐以求的愿望。事实再次证明,世上无难事只怕有心人,只要拥有一个独享IP池,就可以让爬虫再也不怕封IP

  4. 19

    2019-01

    面对平台的反网络爬虫,怎么突破好

    众所周知,哪个平台都有自己的反网络爬虫机制,越是大型平台就越是严格,一般来说,这些平台都有哪些反网络爬虫呢?面对平台的反网络爬虫,怎么突破好?今天就跟小编去看看关于网络的

  5. 12

    2019-04

    购买代理IP时要避免的六个错误

    假设您正在考虑为数据收集操作购买 代理服务器 。无论您是计划使用代理进行网页抓取,价格监控,广告验证还是其他类型的在线操作,您都需要谨慎选择合适的服务。为了帮助您浏览那里可

  6. 23

    2019-05

    HTTP代理服务器如何使用

    HTTP代理服务器如何使用?HTTP代理服务器的设置方法,对于IE和FireFox设置略有不同。设置前需要先找一些可用的免费代理服务器地址。IE的设置是这样的,打开IE浏览器,选择菜单栏的“工具/Inter