当排队等待人数过多的时候,我们需要设置一个等待区防止秩序混乱,同时再有新来的想要排队也可以呆在这个地方。那么在python分布式爬虫中,消息队列就相当于这样的一个区域,爬虫要进入这个区域找寻自己想要的资源,当然这个是一定的次序的,不然数据获取就会出现重复。就下来我们就python分布式爬虫中的消息队列进行详细解释,小伙伴们可以进一步了解一下。

实现分布式爬取的关键是消息队列,这个问题以消费端为视角更容易理解。你的爬虫程序部署到很多台机器上,那么他们怎么知道自己要爬什么呢?总要有一个地方存储了他们需要爬取的url吧,这样他们才能工作。

假设有1万个url需要爬取,而你有100个爬虫程序部署在10台机器上,每台10个爬虫程序在运行,一个url被分给爬虫程序后,其他爬虫不能再获得这个url,不然,就重复爬取了,理解吧,分布式爬虫的关键是怎么把任务分给这些爬虫。

有些促销活动的现场会进行抽奖活动,工作人员捧着一个透明的箱子,参与活动的人从箱子的小口处把手伸进去随机拿出一张折叠的纸条,这种模式与消息队列十分相似。消息队列就好比这个抽奖的箱子,消费端的爬虫程序就好比参与活动的顾客,爬虫从消息队列里拿出一个url任务,然后进行爬取,不同于抽奖活动时一个人只能拿一次,分布式爬虫允许爬虫在结束一个爬虫任务后继续从消息队列里获取任务。

使用redis的队列做消息队列

如果你只是简单的写一个分布式爬虫,那么使用redis的队列就可以了,它完全可以作为消息队列来使用,下面的代码是生产端的代码示例

import redis

r = redis.redis(host='127.0.0.1', port=6379,

password='yourpassword', db=1)

# 生产10个url任务

for i in range(10):

r.lpush('url_queue', i)

相信看完以上的代码示例后,小伙伴们已经学会用redis创造一个消息队列,用来方便爬虫的获取数据。本篇是以生产段的角度写的代码

到此这篇关于python分布式爬虫中消息队列知识点详解的文章就介绍到这了,更多相关python分布式爬虫中的消息队列是什么内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

希望与广大网友互动??

点此进行留言吧!

python 消息队列 get是从队首还是队尾取东西_python分布式爬虫中消息队列知识点详解...相关推荐

  1. python 消息队列 get是从队首还是队尾取东西_Python -- queue队列模块

    import Queue myqueue = Queue.Queue(maxsize = 10) Queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的 ...

  2. python 消息队列 get是从队首还是队尾取东西_从零开始Python对redis作为消息队列的使用...

    一.Redis 服务 1.安装 yum install redis 2. python安装支持模块 /opt/python2.7.13/bin/pip install redis 3. 和redis的 ...

  3. python 消息队列 flask_python分布式爬虫中消息队列知识点详解

    当排队等待人数过多的时候,我们需要设置一个等待区防止秩序混乱,同时再有新来的想要排队也可以呆在这个地方.那么在python分布式爬虫中,消息队列就相当于这样的一个区域,爬虫要进入这个区域找寻自己想要的 ...

  4. python爬虫多线程是什么意思_python爬虫中多线程的使用详解

    queue介绍 queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue.python3直接queue即可 在python中,多个线程之间的数据 ...

  5. python队列来做什么_python分布式爬虫中的消息队列是什么?

    当排队等待人数过多的时候,我们需要设置一个等待区防止秩序混乱,同时再有新来的想要排队也可以呆在这个地方.那么在python分布式爬虫中,消息队列就相当于这样的一个区域,爬虫要进入这个区域找寻自己想要的 ...

  6. python分布式编程_python分布式爬虫中的rules有什么用

    python分布式爬虫中的rules有什么用 发布时间:2020-11-30 14:04:49 来源:亿速云 阅读:100 作者:小新 这篇文章主要介绍python分布式爬虫中的rules有什么用,文 ...

  7. python spider是什么_python分布式爬虫中spider_Worker节点指的是什么

    python分布式爬虫中spider_Worker节点指的是什么 发布时间:2020-11-30 14:07:27

  8. python多线程读取数据库数据_Python基于多线程操作数据库相关知识点详解

    Python基于多线程操作数据库相关问题分析 本文实例分析了Python多线程操作数据库相关问题.分享给大家供大家参考,具体如下: python多线程并发操作数据库,会存在链接数据库超时.数据库连接丢 ...

  9. 操作系统实验二——时间片轮转调度算法(RR算法)(新进程放队首和队尾两种C++实现)

    情况介绍 基本原理 系统将所有就绪进程按照FCFS的原则,排成一个队列依次调度. 把CPU分配给队首进程,执行一个时间片(10-100ms). 时间片用完后,系统计时器发出时钟中断,该进程将被剥夺CP ...

最新文章

  1. AI一分钟 | 华为余承东携Mate 10高调亮相CES,不惧美国运营商放鸽子;日本推“手掌支付”服务,竟靠手相和手掌静脉识别
  2. UniT | Facebook发布全新智能通用Agent!
  3. 作为产品经理,你需要了解的基本算法知识和实操
  4. Qt:opencv编译
  5. Android自动化之旅—生成渠道包
  6. qt5.11 linux oracle,Qt5.11.1 + VS2017环境搭建(Qt5.11在windows上的安装)
  7. CSS图片布局 flex(竖着的几张图片改为一排)
  8. Laravel配置自带组件实现各类型邮件发送功能的代码实例
  9. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...
  10. Mongoose介绍和入门​​
  11. 局域网传输文件_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式
  12. 菜鸟学Linux 第041篇笔记 常见系统故障排除
  13. 三分求单峰/单谷函数极值
  14. 智能手机业务的最新发展趋势
  15. java 0-999 阿拉伯数字转英文
  16. adb server is out of date 最新解决方案
  17. html 标签相互转意功能,让表现显示在界面,不被解析成标签
  18. Decal的另类用法
  19. 【汇正财经】大盘低开回升
  20. 关于排列熵的一些理解与解释

热门文章

  1. C语言通过printf()设置输出显示方式
  2. android横向排列 间隙,Android开发消除横向排列的多个Button之间的空隙
  3. classcastexception异常_优雅的异常处理
  4. pat 乙级 1023 组个最小数(C++)
  5. PCM复用设备的安装和使用注意事项
  6. 单E1光端机分类及技术指标详解
  7. 【渝粤教育】电大中专建筑材料 (3)作业 题库
  8. 2021年春季学期期末统.考试 公司概论 试题
  9. 无线模块在“水盾”防溺水安全预警系统的应用
  10. html如何插入swf视频,Html插入SWF方法