Pyspider的简单介绍和初使用Pyspider
& W# C( y9 a4 T7 h, pPyspider是由国人(binux)编写的强大的网络爬虫系统/ s9 q+ g) _; G0 o* U' g4 c" \/ `* \. a
Ptspider带有强大的WebUi / 脚本编辑器 / 任务监控器 / 项目管理器以及结果处理器。他支持多种数据库后端 / 多种消息队列 / Javascript 渲染页面爬去。使用起来非常方便。 $ M* { g2 F3 P4 D1 n; {5 o
基本功能- 提供了方便易用的 WebUi 系统,可视化的编写和调试爬虫
- 提供爬去进度监控 / 爬去结果查看 / 爬虫项目管理等功能
- 支持多种后端数据库,如:MySQL / MongoDB / Rides 等
- 支持多种消息队列,如:RabbimMQ / Beanstalk / Redis / Kombu
- 提供优先级控制 / 失败重试 / 定时抓取等
- 对接了PhantonJS。可以抓取Javascript 渲染的页面
- 支持单机和分布式部署,支持 Docker 部署' z$ q7 r4 O! \! j
* J0 E/ _' l% {" I d1 ]8 Z
Pyspider 和 ScrapyPyspider - 提供了 WebUi ,爬虫编写 / 调试都是在WebUi 中进行的。
) F8 U f. b; kScrapy - 原生是不具备这个功能的,他采用的代码和命令行的操作,但是可以通过对接Portia 实现可视化配置
x9 `9 h j( Z. n/ C( {, sPyspider - 调试非常便捷,WebUi 操作便捷直观
8 [( \) E( K% VScrapy - 是使用parse 命令进行调试,方便程度不及Pyspider
. g7 p5 a: v6 I8 ]/ LPyspider - 支持PhantomJS 来进行Javascript 渲染页面的采集。
& _0 Y2 d% _: e. DScrapy - 可以对接Scrapy-Splash组件实现,不过需要额外的配置+ B# N; @, [2 N+ |
Pyspider - 中内置了pyquery 作为选择器+ a) p g! Y' s; G8 M
Scrapy - 对接了 Xpath / CSS 选择器和正则
% R/ x( A2 M* I. h% lPyspider - 的可扩展程度不足,可配置化程度不高。
; D" N! O. O* m qScrapy - 可以通过对接Middleware / Pipelinc / Extension 等组件来实现非常强大的功能。模块之间的耦合度低,可扩展性高,如果要快速实现一个页面的抓取,推荐使用 Pyspider ,开发更便捷 ,如:爬去某个新闻网站内容
o6 e) X m- H' ]4 Y如果要对应反爬程度很大,规模较大的爬去。推荐使用 Scrapy ,如:封IP / 封账号风险大,高频率验证的网站
[* U/ p, Q' W# C- T9 Q5 V- E3 z+ i0 a2 P6 \
Pyspider 架构Pyspider 架构主要分为 Scheduler(调度器)/ Fetcher(抓取器)/ Processer(处理器)三个部分,整个爬去过程受到 Monitor(监控器)的监控,抓取的结果被 Result Worker(结果处理器)处理 |