开源python网络爬虫框架Scrapy.docxVIP

  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文档。上传文档
查看更多
开源 python 网络爬虫框架 Scrapy 介绍: 所 谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的 HTML 数据。不过由于一个网站的 网页很多,而我们又不可能事先知道所有网页的 URL 地址,所以,如何保证我们抓取到了网站的所有 HTML 页面就是一个有待考究的问题了。 一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些 URL 加入到爬虫的抓取队列中,然后进入到新新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。 上面介绍的只是爬虫的一些概念而非搜索引擎,实际上搜索引擎的话其系统是相当复杂的,爬虫只是搜索引擎的一个子系统而已。下面介绍一个开源的爬虫框架Scrapy。 一、概述 Scrapy 是一个用 Python 写的 Crawler Framework ,简单轻巧,并且非常方便, 并且官网上说已经在实际生产中在使用了,不过现在还没有 Release 版本,可以直接使用他们的 Mercurial 仓库里抓取源码进行安装。 Scrapy 使用 Twisted 这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。整体架构如下图所示: 绿 线是数据流向,首先从初始 URL 开始,Scheduler 会将其交 给 Downloader 进行下载,下载之后会交给 Spider 进行分 析,Spider 分析出来的结果有两种:一种是需要进一步抓取的链接,例如之前分析的“下一页”的链接,这些东西会被传回 Scheduler ;另一 种是需要保存的数据,它们则被送到 Item Pipeline 那里,那是对数据进行后期处理(详细分析、过滤、存储等) 的地方。另外,在数据流动的通 道里还可以安装各种中间件,进行必要的处理。 二、组件 1、Scrapy Engine(Scrapy 引擎) Scrapy 引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流程。 2、Scheduler(调度) 调度程序从 Scrapy 引擎接受请求并排序列入队列,并在 Scrapy 引擎发出请求后返还给他们。 3、Downloader(下载器) 下载器的主要职责是抓取网页并将网页内容返还给蜘蛛( Spiders)。4、Spiders(蜘蛛) 蜘蛛是有 Scrapy 用户自己定义用来解析网页并抓取制定 URL 返回的内容的类, 每个蜘蛛都能处理一个域名或一组域名。换句话说就是用来定义特定网站的抓取和解析规则。 蜘蛛的整个抓取流程(周期)是这样的: 首先获取第一个 URL 的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用 start_requests()方法。该方法默认从 start_urls 中的 Url 中生成请求,并执行解析来调用回调函数。 在回调函数中,你可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也将包含一个回调,然后被 Scrapy 下载,然后有指定的回调处理。 在回调函数中,你解析网站的内容,同程使用的是 Xpath 选择器(但是你也可以使用 BeautifuSoup, lxml 或其他任何你喜欢的程序),并生成解析的数据项。 最后,从蜘蛛返回的项目通常会进驻到项目管道。 5、Item Pipeline(项目管道) 项 目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的 次序处理数据。每个项目管道的组件都是有一个简单的方法组成的Python 类。他们获取了项目并执行他们的方法,同时他们还需要确定的是是否需要在项目管 道中继续执行下一步或是直接丢弃掉不处理。 项目管道通常执行的过程有: 清洗 HTML 数据 验证解析到的数据(检查项目是否包含必要的字段) 检查是否是重复数据(如果重复就删除) 将解析到的数据存储到数据库中 6、Downloader middlewares(下载器中间件) 下 载中间件是位于 Scrapy 引擎和下载器之间的钩子框架,主要是处理 Scrapy 引擎与下载器之间的请求及响应。它提供了一个自定义的代码的方式来拓展Scrapy 的功能。下载中间器是一个处理请求和响应的钩子框架。他是轻量级的, 对 Scrapy 尽享全局控制的底层的系统。 7、Spider middlewares(蜘蛛中间件) 蜘 蛛中间件是介于 Scrapy 引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。它提供一个自定义代码的方式来拓展 Scrapy 的功能。 蛛中间件是一个挂接到 Scrapy 的蜘蛛处理

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档