Python网络爬虫技术第7章 Scrapy爬虫.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Scrapy爬虫;;Scrapy是一个爬虫框架而非功能函数库,简单地说,它是一个半成品,可以帮助用户简单快速地部署一个专业的网络爬虫。Scrapy爬虫框架主要由引擎(Engine)、调度器(Scheduler)、下载器(Downloader)、Spiders、ItemPipelines、下载器中间件(DownloaderMiddlewares)、Spider中间件(SpiderMiddlewares)这7个组件构成。;引擎负责控制数据流在系统所有组件中的流向,并在不同的条件时触发相对应的事件。这个组件相当于爬虫的“大脑”,是整个爬虫的调度中心。

2.调度器(Scheduler)

调度器从引擎接受请求并将它们加入队列,以便之后引擎需要它们时提供给引擎。初始爬取的URL和后续在网页中获取的待爬取的URL都将放入调度器中,等待爬取,同时调度器会自动去除重复的URL。如果特定的URL不需要去重也可以通过设置实现,如post请求的URL。

;下载器的主要功能是获取网页内容,提供给引擎和Spiders。

4.Spiders

Spiders是Scrapy用户编写用于分析响应,并提取Items或额外跟进的URL的一个类。每个Spider负责处理一个(一些)特定网站。

;ItemPipelines主要功能是处理被Spiders提取出来的Items。典型的处理有清理、验证及持久化(例如存取到数据库中)。当网页被爬虫解析所需的数据存入Items后,将被发送到项目管道(Pipelines),并经过几个特定的次序处理数据,最后存入本地文件或数据库

6.下载器中间件(DownloaderMiddlewares)

下载器中间件是一组在引擎及下载器之间的特定钩子(specifichook),主要功能是处理下载器传递给引擎的响应(response)。下载器中间件提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。通过设置下载器中间件可以实现爬虫自动更换user-agent、IP等功能。

;Spider中间件是一组在引擎及Spiders之间的特定钩子(specifichook),主要功能是处理Spiders的输入(响应)和输出(Items及请求)。Spider中间件提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。各组件之间的数据流向如图所示。

;数据流在Scrapy中由执行引擎控制,其基本步骤流程如下。

引擎打开一个网站,找到处理该网站的Spiders,并向该Spiders请求第一个要爬取的URL。

引擎将爬取请求转发给调???器,调度指挥进行下一步。

引擎向调度器获取下一个要爬取的请求。

调度器返回下一个要爬取的URL给引擎,引擎将URL通过下载中间件(请求方向)转发给下载器

一旦网页下载完毕,下载器生成一个该网页的响应,并将其通过下载中间件(返回响应方向)发送给引擎。

引擎从下载器中接收到响应并通过Spider中间件(输入方向)发送给Spiders处理。

Spiders处理响应并返回爬取到的Items及(跟进)新的请求给引擎。

引擎将(Spiders返回的)爬取到的Items给ItemPipeline,将(Spiders返回的)请求给调度器。

从第2步重复直到调度器中没有更多的URL请求,引擎关闭该网站。

;Scrapy通过命令行进行控制,Scrapy提供了多种命令,用于多种目的,并且每个命令都接收一组不同的参数和选项。

;除了全局命令外,Scrapy还提供了专用于项目的项目命令。

;;使用Scrapy框架进行网页数据爬取第一步就是启动爬虫,使用Scrapy提供的startprject命令即可创建一个爬虫项目,其语法格式如下。

startprject命令常用参数的作用及其解释如所表所示。

;在目录“E:\第7章\任务程序\code”下,创建一个名为“TipDMSpider”的Scrapy爬虫项目,创建完成后,在“E:\第7章\任务程序\code”下就会生成一个名为TipDMSpider的文件夹,其目录结构如图所示。

;图中需要用户自定义的目录与脚本文件的名称、作用,如表所示。

;爬虫的主要目标就是从网页这一非结构化的数据源中提取结构化的数据。TipDMSpider项目最终的目标是解析出文章的标题(title)、时间(time)、正文(text)、浏览数(view_count)等数据。Scrapy提供Item对象来完成解析数据转换为结构化数据的功能。TipDMSpider项目提取的信息最终将存储至csv文件与数据库。使用pandas库将Items中的数据转换为DataFrame会更方便处理。

pandas库的DataFrame函数的语法格式如下。

;DataFrame函数的常用参数及其说明如表所示。

转换为DataF

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2025年02月18日上传了教师资格证

1亿VIP精品文档

相关文档