返回介绍

18.8 PySpider 爬虫架构

发布于 2024-01-26 22:39:51 字数 1080 浏览 0 评论 0 收藏 0

前几节已经讲解了PySpider的基础用法,下面说明一下PySpider爬虫架构的各个部分。PySpider的架构主要分为scheduler(调度器)、fetcher(抓取器)、processor(脚本执行),如图18-19所示。

图18-19 PySpider架构

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

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

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

具体功能如下。

webui的功能:

·web的可视化任务监控。

·web脚本编写,单步调试。

·异常捕获、log捕获、print捕获等。

scheduler的功能:

·任务优先级。

·周期定时任务。

·流量控制。

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

fetcher的功能:

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

·method、header、cookie、proxy、etag、last_modified、timeout等等抓取调度控制。

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

processor的功能:

·内置的pyquery,以jQuery解析页面。

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

·可以向后链传递信息。

·异常捕获。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文