首页 > 编程语言 >《Python从入门到实战》-源码篇-pyspider

《Python从入门到实战》-源码篇-pyspider

时间:2023-09-15 23:57:02浏览次数:57  
标签:task Python 爬虫 调度 爬取 源码 scheduler pyspider

pyspider是什么?
PySpider是一个开源的网络爬虫框架,使用Python语言编写。高效、易用、可扩展等特点,可以帮助用户快速地开发出高效的网络爬虫程序。
PySpider支持多线程、分布式、异步IO等技术,可以处理大规模的数据爬取任务。同时,PySpider还提供了Web界面,方便用户进行任务管理和监控。

pyspider是爬虫框架,特点:

  • 支持分布式
  • 配置可视化
  • 可周期采集
  • 支持优先级
  • 任务可监控

github 地址:
https://github.com/binux/pyspider
官方文档地址:
http://docs.pyspider.org/en/latest/

pyspider 非常适合那种很小很杂的爬虫的管理,比如有100个小网站,规则又各不相同,我要获取他的一些很简单的内容,如标题,所有的图片,正文内容。

爬虫pyspider主要由四个组件组成。包括调度程序(scheduler),抓取程序(fetcher),内容处理程序(processor)以及 监控组件resultworker 以及一个ui,前三者各自分离,用消息队列连接,因此很容易做成分布式(或者说设计之初就是为了分布式的)。

scheduler
了解scheduler之前,先了解两个概念,一个是project,代表着一个项目,如百度爬虫项目;一个是task,代表一个爬取任务,如爬取百度首页,爬取某一个新闻业,都是一个task。

与scheduler相关的队列有三个:

  • scheduler2fetcher 也就是scheduler中的out queue,用于发送task给fetcher
  • status_queue 用于从processor中获取已经爬取的task的状态并做相应处理
  • newtask_queue 新产生的task

scheduler负责调度,与scrapy或者其他的爬虫框架类似,调度器负责调度需要爬取的内容,决定哪些内容在哪些时候进行爬取。我们从代码入手看下pyspider的调度器做了啥。

标签:task,Python,爬虫,调度,爬取,源码,scheduler,pyspider
From: https://www.cnblogs.com/yuanbaobao/p/17706170.html

相关文章

  • tongsuo-python-sdk
    SM4OFB例子importbinasciifromtongsuopy.crypto.ciphersimportCipher,algorithms,modes#key="0123456789ABCDEFFEDCBA9876543210"#iv="0123456789ABCDEFFEDCBA9876543210"key=iv="a7015b8fac3fb90d05930dc0e723ebcb"......
  • Python机器学习——鸟类图像分类
    (一)选题背景:1.生物多样性保护:鸟类是地球上最为丰富和多样的脊椎动物类群之一,对于生态系统的稳定和生物多样性的维持起着重要作用。通过开展鸟类图像分类研究,可以帮助精确地辨别鸟类物种,有助于监测鸟类的分布、数量和迁徙情况,从而更好地实施生物多样性保护和生态环境管理。......
  • python开发商品扫描录入模型
       最近市场监管部门加大了对销售过期商品的处罚力度。很多菜店、粮店等店不大但商品品种、货号批次却非常多。这里介绍两个可以用手机扫描录入商品数据的模型,供大家二次开发,设计出一个管理商品失效日期的小程序。   模型一importsqlite3frompyzbar.pyzbarimport......
  • python实现座位打印
    功能需求用户输入行和列,程序自动打印出相应的座位布局功能分析1:定义一个函数,用于实现功能代码段2:使用input()语句获取用户输入的行列数据3:使用range()模块根据用户输入的行列创建一个二维列表4:使用for嵌套循环填充座位的行列,可以使用不同的字符来区分座位5:打印座位布局程序实现#行r......
  • Python 安装与快速入门
    Python安装许多PC和Mac已经预装了Python。要检查在WindowsPC上是否安装了Python,请在开始菜单中搜索Python,或在命令行(cmd.exe)上运行以下命令:C:\Users\YourName>python--version要检查在Linux或Mac上是否安装了Python,请在Linux上打开命令行或在Mac上打开终端,并键入:python......
  • Vue源码学习(五):<templete>渲染第四步,生成虚拟dom并将其转换为真实dom
    好家伙, 前情提要:在上一篇我们已经成功将ast语法树转换为渲染函数 现在我们继续 1.项目目录代码已开源https://github.com/Fattiger4399/analytic-vue.git手动调试一遍,胜过我解释给你听一万遍新增文件:vnode/index.js  vnode/patch.js  lifecycle.js 2.虚......
  • python02
    编码(密码本)计算机所有的数据本质上都是以0和1的组合来储存的。在计算机内会将中文内存转换成0101010101.......最终储存到硬盘上。在计算机有这么一个编码的概念(密码本)武01010111100001110101101010在计算机中有很多种编码每种编码都有自己的一套密码本,都维护自己的一......
  • Python基础 - 索引器,切片语法
    索引器语法:obj[key]a)一般key为int和str比较常见,但是Python下的索引器的key也可以是float,tuple,list,dict等任意对象。b)索引器会由解释器帮我们转换成对__getitem__函数的调用。 classMyTest():def__getitem__(self,key):print(type(key))......
  • Python基础 - 三目运算
    Python中没有下面这样的三目运算符:desc=a==0?"zero":"not_zero" 但是可以用其他的方式来实现:1,ifelse表达式语法:为真时的值if 条件else 为假时的值a=10b="zero"ifa==0else"not_zero"print(type(b),b)#<class'str'>not......
  • Python集成开发环境IDE-Pycharm 2023 win+mac版
    PyCharm2023是一种流行的集成开发环境(IDE),专门为Python开发人员设计.→→↓↓载Pycharm2023mac/winPyCharm2023版提供了强大的代码编辑器,支持智能代码完成、代码分析、代码重构等功能。它还可以自动检测错误并提供修复建议。PyCharm的调试器非常强大,可以帮助开发人员诊断和......