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

    2019-05

    如何使用动态拨号vps通过爬虫抓取贴吧数据

    有时需要批量获取数据,如果要获取的网页非常多,一页一页的翻是不是太累了,有没有简单的方法?下面小编教教大家如何使用动态拨号vps通过爬虫抓取贴吧数据。想要批量获取数据,可以利

  2. 05

    2019-11

    代理IP池的简介

    代理IP池的简介!在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑、在一段时间内被禁止访问这种时候,可以

  3. 11

    2019-07

    电商效果补量可以用代理IP

    电商效果补量可以用代理IP,现在网络购物比较普及的,说起电商大家都不陌生,全国人民熟悉的淘宝天猫,还有京东聚美优品,唯品会当当网等,都是比较知名的电商平台,自从有了网络我们

  4. 05

    2020-09

    ​手机换IP的方法有哪些

    ​手机换IP的方法有哪些?手机上的IP有点像我们的临时身份证,为什么说是临时的呢?因为它是可以更换的,那么手机换IP需要怎样操作呢?相信小伙伴们都非常想知道,下面IP精灵代理小编就给大

  5. 25

    2019-06

    如何利用代理IP提高粉丝量

    互联网发展速度越来越快,各种各样的人通过网络上展现自己的才能,有独树一帜的技艺,有耳目一新的说辞,也有人明明并没有特别之处,但是依旧粉丝量居高不下,这种情况是如何办到的呢

  6. 15

    2019-08

    爬虫选择什么代理IP好

    为了获取数据,很多技术人员通过爬虫的方式抓取,爬虫程序抓取信息很方便,效率高,速度快,但同时也会受到反爬虫的限制,例如IP限制。所以,爬虫工作需要代理IP的协助。那么,爬虫选