Python 爬虫之pyspider
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培训机构:千锋教育。

相关推荐HOT
更多>>
Python元组怎么转换成列表
python中将元组转换成列表的方法是使用list()进行转换。使用示例:>>>T=(11,33,22,44)#元组对象>>>L=list(T)#转变为列表对象另外,可以使用tupl...详情>>
2023-11-06 20:15:08
python如何求次幂?
python中可以使用math模块中的pow()方法求次幂。pow()方法返回xy(x的y次方)的值。math模块pow()方法的语法:importmathmath.pow(x,y)示例:#!/u...详情>>
2023-11-06 18:27:10
python怎么import另一个python文件?
python使用import导入python文件的方法:示例:有a.py和b.py两个文件,当我们需要在b.py文件中应用a.py中的func()函数时,导入方法如下:同一文...详情>>
2023-11-06 17:47:37
python怎么判断文件夹下是否存在文件?
python判断文件夹下是否存在文件的方法:1、使用os.path.exists()方法判断文件是否存在importosos.path.exists(test_file.txt)#Trueos.pat详情>>
2023-11-06 14:20:14