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

    2019-04

    网络爬虫没有代理IP真的不行吗

    有客户问:爬虫必须用代理IP吗?很多人认为爬虫必须要用代理IP,没有代理IP将寸步难行;也有人说,代理IP是非必须的。网络爬虫没有代理IP真的不行吗?下面就来为大家解答这个疑惑。

  2. 10

    2019-09

    使用换IP工具帐户推广效果更显著

    使用换IP工具帐户推广效果更显著。为什么?IP相当于我们的身份证,我们每台电脑或手机在拨号上网时都会分配一个IP地址。动态IP由于IP地址资源很宝贵,因此大部分用户上网都是使用动态IP地

  3. 17

    2019-10

    代理IP采集信息被拒绝及爬虫抓取失败的原因

    代理IP采集信息被拒绝及爬虫抓取失败的原因!网络爬虫工作室和爬虫爱好者都遇到过采集信息被拒绝的情况,现在让我们简要列举分析一下代理IP采集信息被拒绝及爬虫抓取失败的原因:

  4. 05

    2019-09

    使用代理IP,真实地址能被查到吗?

    使用代理IP,真实地址能被查到吗?现在,高匿代理ip时代已经到来,但是,还是有很多人不了解高匿代理ip到底有什么用,虽然随着网络科技的发展,网络对我们的生活带来了很多方便,也带来

  5. 20

    2019-11

    什么是adsl动态IP拨号服务器?

    什么是adsl动态IP拨号服务器?adsl拨号服务器又叫动态拨号vps、动态IP vps或者拨号vps,主要是相对于平常所见到的固定IP的VPS服务器而言的。ip代理精灵可以在VPS服务器上实现更换IP的作用,拨一次

  6. 20

    2019-03

    IP代理精灵谈谈爬虫如何爬取京东商品及价格

    今天极光爬虫为大家介绍一下爬虫是如何爬取京东商品及价格的。首先,我们打开京东首页,例如,我们在搜索框输入“华为”进行搜索,搜索得到商品及价格会存入csv文本,只有静态的30个逐