python queue模块下载_Python-并发下载-queue模块

本文介绍了如何使用Python的queue模块实现多线程爬虫,以解决网络I/O速度限制爬虫效率的问题。讨论了多线程在爬虫中的应用,以及queue模块的Queue、LifoQueue和PriorityQueue三种类型的队列,分别用于FIFO、LIFO和优先级数据存储。示例展示了如何使用这些队列进行数据操作。
摘要由CSDN通过智能技术生成

import queue

由于外部网络不稳定,在使用单线程爬取网页数据时,如果有一个网页响应速度慢或者卡住,整个程序都要等待下去。因此,可以使用多线程、多进程、协程技术实现并发下载网页。

多进程适用于 CPU 密集型的代码,例如各种循环处理、大量的密集并行计算;

多线程适用于 I/O 密集型的代码,例如文件处理、网络交互;

协程无须通过操作系统调度,没有进程、线程之间的切换和创建等开销,适用于大量不需要 CPU 的操作,例如网络 I/O 等。

实际上,限制爬虫程序发展的瓶颈就在于网络 I/O,原因是网络 I/O 的速度赶不上CPU 的处理速度。

一、多线程爬虫流程分析

多线程爬虫将多线程技术运用在采集网页信息和解析网页内容上。

① 准备一个网址列表,爬取数据的网页列表。

与单线程爬虫不同,多线程爬虫可以同时爬取多个网页。

② 同时开启多个线程爬取网页内容。

一般启动固定数量的线程,一个线程爬取完一个网页之后,接着爬取下一个。线程的数量不宜过多,否则,线程调度的时间太长,效率低;线程的数量也不宜过少,否则不能最大限度地提高爬取速度。

③ 将爬取到的网页源代码存储在一个列表中。

④ 同时使用多个线程对网页源代码表的网页内容进行解析。

⑤ 将解析之后的数据存储起来。

二、使用 queue 模块实现多线程爬虫

多线程爬虫要在内存中存储数据&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值