Python爬虫之Pyspider框架架构设计

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

通过python脚本进行结构化信息的提取,follow链接调度抓取控制,实现最大的灵活性

通过web化的脚本编写、调试环境。web展现调度状态

抓取环模型成熟稳定,模块间相互独立,通过消息队列连接,从单进程到多机分布式灵活拓展

功能

webui

web的可视化任务监控

web脚本编写,单步调试

异常捕获、log捕获,print捕获等

scheduler

任务优先级

周期定时任务

流量控制

基于时间周期 或 前链标签(例如更新时间)的重抓取调度

fetcher

dataurl支持,用于假抓取模拟传递

method, header, cookie, proxy, etag, last_modified, timeout 等等抓取调度控制

可以通过适配类似phantomjs的webkit引擎支持渲染

processor

内置的pyquery,以jQuery解析页面

在脚本中完全控制调度抓取的各项参数

可以向后链传递信息

异常捕获

架构

pyspider的架构主要分为 scheduler(调度器), fetcher(抓取器), processor(脚本执行):



各个组件间使用消息队列连接,除了scheduler是单点的,fetcher 和 processor 都是可以多实例分布式部署的。 scheduler 负责整体的调度控制

任务由 scheduler 发起调度,fetcher 抓取网页内容, processor 执行预先编写的python脚本,输出结果或产生新的提链任务(发往 scheduler),形成闭环。

每个脚本可以灵活使用各种python库对页面进行解析,使用框架API控制下一步抓取动作,通过设置回调控制解析动作。

参考:https://binux.blog/2014/02/pyspider-architecture/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用了一段时间的pyspider,一直没有研究源码。这两天抽空看了看,稍微拿几个点出来研究一下,如果读到哪里不对的地...
    沸腾的小茄克阅读 3,250评论 1 6
  • 一,pyspider pyspider的设计基础是:以python脚本驱动的抓取环模型爬虫 通过python脚本进...
    学而不厌888阅读 943评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,333评论 19 139
  • 现在有很多爬虫框架,比如scrapy、webmagic、pyspider都可以在爬虫工作中使用,也可以直接通过re...
    DaVinciDW阅读 1,423评论 0 1
  • 之前就专门写过一篇关于车的文章。说我从我哥那里借来一辆淡蓝色的小奥拓,在城市中代步着实方便。但如果你开车久了,你就...
    花满楼阅读 249评论 0 2

友情链接更多精彩内容