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

    2019-12

    IP被限制该怎么切换IP?

    IP被限制该怎么切换IP?我们在平时浏览一个网站的时候都发现,如果在一个网站上操作过快,就容易出现IP地址受限、限制登录等问题。例如在贴吧发帖的时候,怎么也发布不成功帖子,这就有

  2. 20

    2019-05

    如何使用代理服务器上网

    前几天,有两个同事咨询过我,如何使用代理上网,我发现其过程还是挺多的,与其我一步步讲给他们听,不如写一个教程,这样他们也更能理解和操作。下面我就介绍一下怎么使用代理服务器

  3. 20

    2019-09

    ip精灵开启代理ip行业新时代!

    ip精灵开启代理ip行业新时代!随着IP代理精灵为用户提供高匿代理ip逐渐出现在众人眼前,作为普通匿名代理ip发展创新的服务,高质量代理ip更加完美的为客户提供服务,让用户可以更随心的使

  4. 18

    2019-02

    Python爬虫:API快速采集数据

    如果有网站支持API采集,我们也可以通过API来采集数据的。虽然现在支持API采集的网站是非常少,但我们可以学习下API采集的方法,API采集是非常方便的,相当于数据已经变成一块蛋糕,你只需

  5. 24

    2019-04

    HTTP代理可以为python网络爬虫做什么

    现在大数据是个很火的行业,对于从事互联行业网的小伙伴来说,HTTP代理ip并不是一个陌生的存在,如果你恰好是做技术敲代码的专业人才,尤其是要负责网络爬虫的相关工作,那么每天跟你打

  6. 24

    2019-04

    速度快的代理IP选什么好

    一般选择使用代理IP的,无非是处于这么几个原因,一是自己的IP被网站限制或者封锁了,无法继续访问网站;二是自己的网络速度慢,像投票,抢购这样的业务对网速有要求;三是IP无法访问一些