志在指尖
用双手敲打未来

scrapy(scrapy框架优缺点)

scrapy

Scrapy是用纯Python完结一个为了爬取网站数据、提取结构性数据而编写的运用结构,用处非常广泛,用户只需求定制开发几个模块就能够轻松的完结一个爬虫,用来抓取网页内容以及各种图片,非常之方便。
尽管Scrapy原本是规划用来屏幕抓取(更准确的说,是网络抓取),但它也能够用来访问API来提取数据。
scrapy架构图:
scrapy的各个模块:
crapyEngine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中心的通讯,信号、数据传递等。
Scheduler(调度器):它负责接受引擎发送过来的Request恳求,并按照必定的方法进行收拾排列,入队,当引擎需求时,交还给引擎。
Downloader(下载器):负责下载ScrapyEngine(引擎)发送的一切Requests恳求,并将其获取到的Responses交还给ScrapyEngine(引擎),由引擎交给Spider来处理,
Spider(爬虫):它负责处理一切Responses,从中剖析提取数据,获取Item字段需求的数据,并将需求跟进的URL提交给引擎,再次进入Scheduler(调度器),
ItemPipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细剖析、过滤、存储等)的当地.
DownloaderMiddlewares(下载中心件):你能够当作是一个能够自定义扩展下载功用的组件。
SpiderMiddlewares(Spider中心件):你能够理解为是一个能够自定扩展和操作引擎和Spider中心通讯的功用组件(比如进入Spider的Responses;和从Spider出去的Requests)
简略的Scrapy爬虫只需求五步:
新建项目:创建爬虫项目,指令:scrapystartprojectxxxx
创建运用,指令:scrapygenspiderspider称号方针站点
清晰字段(编写items.py):清晰你想要抓取的方针站点的字段
制作爬虫(spiders/spider.py):编写爬虫开端爬取网页,解析网页内容
存储内容(pipelines.py):规划管道存储爬取内容
scrapy结构评价:
scrapy结构,将网页收集的通用功用,集成到各个模块中,留出自己定义的部分,它将程序员从繁冗的流程式重复劳动中解放出来,简略的网页爬虫的重点,就集中在应对反爬,大规模爬取和高效稳定的爬取这几个方面。
优点:
1)scrapy是异步的,能够灵敏调节并发量
2)采纳可读性更强的xpath代替正则,速度快
3)写middleware,方便写一些统一的过滤器
4)同时在不同的url上爬行
5)支撑shell方法,方便独立调试
6)通过管道的方法存入数据库,灵敏,可保存为多种形式
缺点:
1)无法用它完结分布式爬取
2)自身去重作用差,耗费内存,且不能持久化
3)对于需求执行js才干获取数据的网页,爱莫能助
4)兼容了下载图片与视频,可是可用性比较差
5)自身扩展的log模块,不好用,常常需求自定义
6)基于twisted结构,运行中的exception是不会干掉reactor(反应器),并且异步结构出错后是不会停掉其他使命的,数据出错后难以察觉,预警系统简略的运用邮件,很不友爱
scrapy抓取简略的网页很有用,但也有很多缺陷,功用并不能非常满意日常需求,所以有许多公司自行定制化开发爬虫结构,来完结对数据的收集,许多扩展件在github上也取得了不小的成绩。scrapy

scrapy框架优缺点

优点:
采取可读性更强的xpath代替正则强大的统计和log系统同时在不同的url上爬行支持shell方式,方便独立调试写middleware,方便写一些统一的过滤器通过管道的方式存入数据库
缺点:
基于python爬虫框架,扩展性比较差,基于twisted框架,运行中exception是不会干掉reactor,并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉

未经允许不得转载:IT技术网站 » scrapy(scrapy框架优缺点)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载