文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
18.8 PySpider 爬虫架构
前几节已经讲解了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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论