当排队等待人数过多的时候,我们需要设置一个等待区防止秩序混乱,同时再有新来的想要排队也可以呆在这个地方。那么在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分布式爬虫中消息队列知识点详解

本文地址: http://www.cppcns.com/jiaoben/python/366379.html

python 消息队列 flask_python分布式爬虫中消息队列知识点详解相关推荐

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

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

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

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

  3. python构造自定义数据包_pytorch中的自定义数据处理详解

    pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法. :.getitem:返回一条数据或者一个样本,obj[in ...

  4. python orm框架sqlalchemy_python orm 框架中sqlalchemy用法实例详解

    本文实例讲述了python orm 框架中sqlalchemy用法.分享给大家供大家参考,具体如下: 一.ORM简介 1. ORM(Object-Relational Mapping,对象关系映射): ...

  5. python写等腰三角形的性质_杨辉三角—知识点详解 - osc_8cfq8uoa的个人空间 - OSCHINA - 中文开源技术交流社区...

    杨辉三角 杨辉三角(欧洲叫帕斯卡三角)是一个很奇妙的东西,它是我国数学家杨辉在1261年发现的,欧洲的帕斯卡于1654年发现,比我国的巨佬数学家杨辉晚了393年.(在此show一下我的爱国情怀) 铺垫 ...

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

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

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

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

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

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

  9. Python进阶之Scrapy-redis分布式爬虫抓取当当图书

    Python进阶之Scrapy-redis分布式爬虫抓取当当图书 1. 准备工作 1.1 安装scrapy-redis 1.2 在windows安装redis程序 1.3 打开redis服务 2. 需 ...

最新文章

  1. 区别于传统低效标注,两种基于自然语言解释的数据增强方法
  2. OutOFMemoryError
  3. 几种不同的邮件发送解决方案
  4. ajax前端实时获取数据
  5. c 语言从文件中读取字符串数组,C从文本文件读取到数组/字符串
  6. 个人用户可以向运营商申请短信接口吗?
  7. 在GitHub上学黑客 --- 黑客成长技术清单
  8. 7种不同的数据标准化(归一化)方法总结
  9. Discuz!ML 3.x任意代码执行漏洞
  10. ‘__NR_sigreturn’ was not declared in this scope
  11. 作为人才我们为什么要和几个猎头保持良好的关系?
  12. 让GitHub沸腾的阿里内部神作Java并发原理JDK源码手册,现已开源
  13. 数据挖据---机器学习平台之H2O架构/接口/实践
  14. c语言筛法求一个范围内的素数,运用埃拉托色尼筛法求解一定范围内的素数.docx...
  15. CAD 查找指定部件数量
  16. 使用正则表达式进行身份证号匹配
  17. 计算机网络 -- TCP/IP
  18. windows 安装 matplotlib 报错
  19. predis操作redis方法大全
  20. 对神经网络的简单理解,简述什么是神经网络

热门文章

  1. 1、linux中恢复使用rm删除的文件
  2. 字符串转int数据类型的三种方式
  3. handlebar的简单使用及方法
  4. Django在浏览器上显示本地图片
  5. python dataset[trans_科学网—Python GDAL 图像坐标,投影坐标,经纬度坐标 三者映射及运行错误解决 - 吴妍潼的博文...
  6. 尝鲜Jumony for MVC,体验插件化网站开发
  7. H5分享h5页面、小程序到微信
  8. java 事务提交_JAVA设置手动提交事务,回滚事务,提交事务的操作
  9. 1、CentOS 安装 Java JDK
  10. 二、婴儿用品信息数据初了解