pyspider介绍

Pyspider功能需求

pyspider是一个爬虫架构的开源化实现。主要的功能需求是:

  1. 抓取、更新调度多站点的特定的页面
  2. 需要对页面进行结构化信息提取
  3. 灵活可扩展,稳定可监控

而这也是绝大多数python爬虫的需求 —— 定向抓取,结构化化解析。但是面对结构迥异的各种网站,单一的抓取模式并不一定能满足,灵活的抓取控制是必须的。为了达到这个目的,单纯的配置文件往往不够灵活,于是,通过脚本去控制抓取是pyspider最后的选择。

而去重调度,队列,抓取,异常处理,监控等功能作为框架,提供给抓取脚本,并保证灵活性。最后加上web的编辑调试环境,以及web任务监控,即成为了这套框架。

Pyspider设计基础

pyspider的设计基础是:以python脚本驱动的抓取环模型爬虫。

  1. 通过python脚本进行结构化信息的提取,follow链接调度抓取控制,实现最大的灵活性。
  2. 通过web化的脚本编写、调试环境。web展现调度状态。
  3. 抓取环模型成熟稳定,模块间相互独立,通过消息队列连接,从单进程到多机分布式灵活拓展。

这里写图片描述

Pyspider架构设计

pyspider 的架构主要分为 scheduler(调度器), fetcher(抓取器), processor(脚本执行):
这里写图片描述

  1. 各个组件间使用消息队列连接,除了scheduler是单点的,fetcher 和 processor 都是可以多实例分布式部署的。scheduler 负责整体的调度控制。
  2. 任务由 scheduler 发起调度,fetcher 抓取网页内容, processor执行预先编写的python脚本,输出结果或产生新的提链任务(发往 scheduler),形成闭环。
  3. 每个脚本可以灵活使用各种python库对页面进行解析,使用框架API控制下一步抓取动作,通过设置回调控制解析动作。

pyspider功能

webui

  • web的可视化任务监控
  • web脚本编写,单步调试
  • 异常捕获、log捕获,print捕获等

scheduler

  • 任务优先级
  • 周期定时任务
  • 流量控制

fetcher

  • dataurl支持,用于假抓取模拟传递
  • method,header,cookie,proxy,etag,last_modified,timeout等等抓取调度控制
  • 可以通过适配类似phantomjs的webkit引擎支持渲染

processor

  • 内置的pyquery,以jQuery解析页面
  • 在脚本中完全控制调度抓取的各项参数
  • 可以向后链传递信息
  • 异常捕获

Pyspider在centos下安装

安装依赖库

•# yum install python-pip python-devel python-distribute libxml2 libxml2-devel python-lxml libxslt libxslt-devel openssl openssl-devel

升级pip

•# pip install –upgrade pip

安装pyspider

•# pip install pyspider

访问控制台

•安装完成直接执行pyspider以默认配置运行pyspider,访问http://localhost:5000访问控制台

Pyspider控制台使用说明

这里写图片描述

队列统计:是为了方便查看爬虫状态,优化爬虫爬取速度新增的状态统计.每个组件之间的数字就是对应不同队列的排队数量.通常来是0或是个位数.如果达到了几十甚至一百说明下游组件出现了瓶颈或错误,需要分析处理.
**新建项目:**pyspider与scrapy最大的区别就在这,pyspider新建项目调试项目完全在web下进行,而scrapy是在命令行下开发并运行测试.
组名:项目新建后一般来说是不能修改项目名的,如果需要特殊标记可修改组名.直接在组名上点鼠标左键进行修改.注意:组名改为delete后如果状态为stop状态,24小时后项目会被系统删除.
运行状态:这一栏显示的是当前项目的运行状态.每个项目的运行状态都是单独设置的.直接在每个项目的运行状态上点鼠标左键进行修改.运行分为五个状态:TODO,STOP,CHECKING,DEBUG,RUNNING.各状态说明:TODO是新建项目后的默认状态,不会运行项目.STOP状态是停止状态,也不会运行.CHECHING是修改项目代码后自动变的状态.DEBUG是调试模式,遇到错误信息会停止继续运行,RUNNING是运行状态,遇到错误会自动尝试,如果还是错误会跳过错误的任务继续运行.
速度控制:很多朋友安装好用说爬的慢,多数情况是速度被限制了.这个功能就是速度设置项.rate是每秒爬取页面数,burst是并发数.如1/3是三个并发,每秒爬取一个页面.
简单统计:这个功能只是简单的做的运行状态统计,5m是五分钟内任务执行情况,1h是一小时内运行任务统计,1d是一天内运行统计,all是所有的任务统计.
**运行:**run按钮是项目初次运行需要点的按钮,这个功能会运行项目的on_start方法来生成入口任务.
任务列表:显示最新任务列表,方便查看状态,查看错误等
结果查看:查看项目爬取的结果.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值