- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Python爬虫Scrapy框架的使用
目录010203Scrapy框架简介准备工作Scrapy实现简单抓取
前面的内容其实已经有了爬虫框架的雏形,实现了调度器、队列、请求对象、异常重试机制等,如果将各个组件独立出来,把它们定义成不同的模块,也就慢慢形成了一个框架,而有了框架之后,我们就不必关心爬虫的流程了,异常处理、任务调度等都会集成在框架中。背景分析
只需关心爬虫的核心逻辑即可(即页面信息的提取、下一步请求生成等)不仅提高了开发效率,爬虫的健壮性也更强。背景分析
Scrapy—Scrapy是一个基于Python开发的爬虫框架,是当前Python爬虫生态中最流行的爬虫框架,提供了非常多爬虫相关的基础组件,架构清晰,可扩展性极强。注:Scrapy框架几乎是Python爬虫学习和工作过程中必须掌握的框架,需要好好钻研和掌握!!!Scrapy框架简介
1、基本思想—前期的爬虫实现逻辑:爬取逻辑、异常处理、数据解析、数据存储等,这些步骤都是通用或是重复的,因此,我们完全可以把这些步骤的逻辑抽离出来,把其中通用的功能做成一个个基础的组件,抽离出基础组件以后,每次写爬虫只需要在这些组件基础上加上特定的逻辑就可以实现爬取的流程,而不用将爬虫每个细小的流程都写一遍即把每个逻辑封装成一个通用的方法或类来直接调用Scrapy框架简介
2、架构Scrapy框架简介
1)核心组件Engine:引擎,用来处理整个系统的数据流和事件,是整个框架的核心,可以理解为整个框架的中央处理器,负责数据的流转和逻辑的处理。Item:一个类(里面定义了爬取结果的数据字段,可以理解为它用来规定爬取数据的存储格式),爬取的数据会被赋值成Item对象。Scheduler:调度器,用来接受Engine发过来的Request并加入队列,同时也可以将Request发回给Engine供Downloader执行,主要维护Request的调度逻辑(先进先出、后进先出、优先级出入等)。Downloader:下载器,完成“向服务器发送请求,然后拿到响应”的过程,等到的响应会再发送给Engine处理。Scrapy框架简介
Spiders:蜘蛛,可以对应多个spider,每个spider内定义了站点的爬取逻辑和页面的解析规则,它主要负责解析响应并生成Item和新的请求然后发给Engine进行处理。ItemPipelines:项目管道,可以对应多个ItemPipeline,主要负责处理由Spider从网页中抽取的Item,做一些数据清洗、验证和存储等工作(比如将Item的某些字段进行规整,将Item存储到数据库等操作)。DownloaderMiddlewares:下载器中间件,包含多个DownloaderMiddleware,是位于引擎和下载器之间的Hook框架,负责实现Engine与Downloader之间的请求及响应的处理过程。SpiderMiddlewares:蜘蛛中间件,位于Engine和Spider之间的Hook框架,负责实现Spiders和Engine之间的Item、请求和响应的处理过程。Scrapy框架简介
3、数据流—数据流主要包括三大部分:Item、Request、Response1)启动爬虫项目时,Engine根据要爬取的目标站点找到处理该站点的Spider,Spider会生成最初需要爬取的页面对应的一个或多个Request,然后发给Engine2)Engine从Spider中获取这些Request,然后把它们交给Scheduler等待被调度Scrapy框架简介提问:学习了Scrapy的架构的核心组件后,负责整个数据流的分配和处理的是谁?它们怎么被Engine控制和流转?
3)Engine向Scheduler索取下一个要处理的Request,这时候Scheduler根据其调度逻辑选择合适的Request发送给Engine4)Engine将Scheduler发来的Request转发给Downloader进行下载执行,将Request发送给Downloader的过程会经由许多定义好的DownloaderMiddlewares的处理5)Downloader将Request发送给目标服务器,得到对应的Response,然后将其返回给Engine,将Response返回Engine的过程,同样会经由许多定义好的SpiderMiddlewares的处理6)Engine从Downloader处接收到的Response里包含了爬取的目标站点的内容,Engine会将此Response发送给对应的Spider进行处理,将Response发送给Spider的过程会经由定义好的Spider
您可能关注的文档
- Set接口及其实现类赵耀宏63课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语50课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语53课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语57课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语61课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语68课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语74课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语78课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语79课件讲解.pptx
- PracticalEnglishforInternationalCruiseShipCrew国际邮轮服务英语80课件讲解.pptx
原创力文档


文档评论(0)