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

    2019-04

    网络不好如何使用代理服务器登录QQ

    在某些情况下,比如网络不通畅,无法与QQ服务器连通,我们会用代理服务器来登录QQ。对不太了解QQ代理服务器的朋友们来说,找代理、用代理都比较困难。下面我们就来详细了解一下代理服务

  2. 14

    2019-07

    如何使用动态ip抓取豆瓣电影数据

    如何使用动态ip抓取豆瓣电影数据?学爬虫有一段时间了,作为一个悬疑片爱好者总是无限片荒,泛滥的Top250爬取以及填补不了我饥渴的内心。于是果然地决定:自己动手,爬完豆瓣,丰衣足食

  3. 24

    2018-11

    手机更换ip地址软件哪个好?

    很多人有疑问,为什么手机更换ip地址?好像用不着吧,能上网就可以了。其实手机更换ip地址作用很多,比如微信给人投票,刷移动端网站的流量和排名,刷网站注册量等等。

  4. 19

    2019-06

    选择代理IP池资源的正确姿势

    作为经常上网的老网民,你一定遇到过访问网站IP受限这种尴尬情况;作为从事网络推广工作的推广员,你一定遇到过注册发帖几次提示当日次数达到上限的尴尬情况,作为从事爬虫工作的工程

  5. 16

    2019-03

    IP代理精灵:多线程的同步和异步是什么意思

    限制网络发展快,数据产生也快,这对网络的性能挑战越来越大,多线程的同步和异步则应运而生。使用多线程的同步和异步获取信息,要注意什么?下面我们来了解下多线程的同步和异步是什

  6. 23

    2019-08

    为什么说免费代理IP有风险?

    市面上免费代理IP​那么多,为什么还有人愿意花钱使用付费代理IP?为什么说免费代理IP有风险?下面由小编带大家简单分析一下其中原因。一、免费代理IP传送信息不安全。使用免费代理IP,