python3爬虫中引用Queue的实例讲解


Posted in Python onNovember 24, 2020

我们去一个受欢迎的地方买东西,难免会需要排队等待。如果有多个窗口的话,就会有不同队列的产生,当然每个队伍的人数也会出现参差不齐的现象。我们今天所要说的Queue就可以理解成生活中的排队现象。那么结合我们所要用的爬虫知识,应该怎么在Queue中应用呢?接下来就开始今天的内容学习:

队列这种东西大家应该都知道,就是一个先进先出的数据结构,而Python的标准库中提供了一个线程安全的队列,也就是说该模块是适用于多线程编程的先进先出(first-in,first-out,FIFO)数据结构,可以用来在生产者消费者线程之间安全地传递消息或其他数据。它会为调用者处理锁定,使用多个线程可以安全地处理同一个 Queue 实例。Queue 的大小(其中包含的元素个数)可能要受限,以限制内存使用或处理。

在Python 3中要引入Queue和Python 2中引入Queue是不同,引入方式如下:

#python 2
import Queue
# python 3
from queue import Queue

因为是线程安全的,很自然就可以利用Queue来实现一个多线程爬虫咯,而Queue的一些常见操作如下:

# 实例化一个队列,可以在指定队列大小
q = Queue.Queue()
q_50 = Queue.Queue(50) # 指定一个长度为50的队列
# 入队一个数据data
q.put(data)
# 出队并赋值给item
item = q.get()
# 判断队列是否为空,是否满
if q.empty():
  print('队列为空')
if q.full():
print('队列满')

另外,除了普通队列,标准库中还有优先队列和后进先出队列这两个队列,分别为LifoQueue和PriorityQueue,其引用方式与Queue类似。

到此这篇关于python3爬虫中引用Queue的实例讲解的文章就介绍到这了,更多相关python3爬虫中如何引用Queue案例内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
python3设计模式之简单工厂模式
Oct 17 Python
python中hashlib模块用法示例
Oct 30 Python
用python写扫雷游戏实例代码分享
May 27 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
解决Mac下使用python的坑
Aug 13 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Python3如何使用range函数替代xrange函数
Oct 05 Python
python绘图pyecharts+pandas的使用详解
Dec 13 Python
Python datetime模块的使用示例
Feb 02 Python
Python预测分词的实现
Jun 18 Python
python3爬虫中多线程的优势总结
Nov 24 #Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 #Python
python 如何停止一个死循环的线程
Nov 24 #Python
python将下载到本地m3u8视频合成MP4的代码详解
Nov 24 #Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 #Python
Python调用Redis的示例代码
Nov 24 #Python
基于django和dropzone.js实现上传文件
Nov 24 #Python
You might like
PHP 彩色文字实现代码
2009/06/29 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
javascript的内存管理详解
2013/08/07 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Python3离线安装Requests模块问题
2019/10/13 Python
Python 从attribute到property详解
2020/03/05 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
党员承诺书内容
2014/03/26 职场文书
爱心捐款倡议书
2014/04/14 职场文书
城管大队整治方案
2014/05/06 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
美容院员工规章制度
2015/08/05 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang