pyspider是一个支持任务监控、项目管理、多种数据库,具有WebUI的爬虫框架,它采用Python语言编写,分布式架构。详细特性如下:
拥有Web脚本编辑界面,任务监控器,项目管理器和结构查看器;
数据库支持MySQL、MongoDB、Redis、SQLite、Elasticsearch、PostgreSQL、SQLAlchemy;
队列服务支持RabbitMQ、Beanstalk、Redis、Kombu;
支持抓取JavaScript的页面;
组件可替换,支持单机、分布式部署,支持Docker部署;
强大的调度控制,支持超时重爬及优先级设置;
支持Python2&3。
pyspider主要分为Scheduler(调度器)、Fetcher(抓取器)、Processer(处理器)三个部分,整个爬取过程受到Monitor(监控器)的监控,抓取的结果被ResultWorker(结果处理器)处理。基本流程为:Scheduler发起任务调度,Fetcher抓取网页内容,Processer解析网页内容,再将新生成的Request发给Scheduler进行调度,将生成的提取结果输出保存。
2pyspidervsscrapypyspider拥有WebUI,爬虫的编写、调试可在WebUI中进行;Scrapy采用采用代码、命令行操作,实现可视化需对接Portia。
pyspider支持使用PhantomJS对JavaScript渲染页面的采集;Scrapy需对接Scrapy-Splash组件。
pyspider内置了PyQuery(Python爬虫(五):PyQuery框架)作为选择器;Scrapy对接了XPath、CSS选择器、正则匹配。
pyspider扩展性弱;Scrapy模块之间耦合度低,扩展性强,如:对接Middleware、Pipeline等组件实现更强功能。
总的来说,pyspider更加便捷,Scrapy扩展性更强,如果要快速实现爬取优选pyspider,如果爬取规模较大、反爬机制较强,优选scrapy。
以上内容为大家介绍了Python爬虫之pyspider,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。