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