- 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架构分析 - 为程序员服务.pdf
Python开源爬虫框架:Scrapy架构分析
python ? scrapy
所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的
HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所
有HTML页面就是一个有待考究的问题了。?一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前
页面获取到这些URL加入到爬虫的抓取队列中,
所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特
定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何
保证我们抓取到了网站的所有HTML页面就是一个有待考究的问题了。
一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到
爬虫的抓取队列中,然后进入到新新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。
上面介绍的只是爬虫的一些概念而非搜索引擎,实际上搜索引擎的话其系统是相当复杂的,爬虫只是搜索引擎的一个
子系统而已。
Python开源的爬虫框架Scrapy是一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构
化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何
人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了
web2.0爬虫的支持。
一、概述
Scrapy是一个用?Python?写的?Crawler?Framework?,简单轻巧,并且非常方便,并且官网上说已经在实际生产中在使
用了,不过现在还没有?Release?版本,可以直接使用他们的?Mercurial?仓库里抓取源码进行安装。
Scrapy?使用?Twisted?这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种
需求。
Scrapy整体架构如下图所示,其中包含了它的主要组件及系统的数据处理流程(绿色箭头所示)。下面就来一个个解
释每个组件的作用及数据的处理过程。
绿线是数据流向,首先从初始?URL?开始,Scheduler?会将其交给?Downloader?进行下载,下载之后会交给?Spider?进
行分析,Spider?分析出来的结果有两种:一种是需要进一步抓取的链接,例如之前分析的“下一页”的链接,这些东西
会被传回?Scheduler?;另一种是需要保存的数据,它们则被送到?Item?Pipeline?那里,那是对数据进行后期处理(详细
分析、过滤、存储等)的地方。另外,在数据流动的通道里还可以安装各种中间件,进行必要的处理。
二、组件
1、Scrapy?Engine(Scrapy引擎)
Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流
程。
2、Scheduler(调度)
调度程序从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求后返还给他们。
3、Downloader(下载器)
下载器的主要职责是抓取网页并将网页内容返还给蜘蛛(?Spiders)。
4、Spiders(蜘蛛)
蜘蛛是有Scrapy用户自己定义用来解析网页并抓取制定URL返回的内容的类,每个蜘蛛都能处理一个域名或一组域
名。换句话说就是用来定义特定网站的抓取和解析规则。
蜘蛛的整个抓取流程(周期)是这样的:
1.? 首先获取第一个URL的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用start_requests()方
法。该方法默认从start_urls中的Url中生成请求,并执行解析来调用回调函数。
2.? 在回调函数中,你可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也将包含一个回调,
然后被Scrapy下载,然后有指定的回调处理。
3.? 在回调函数中,你解析网站的内容,同程使用的是Xpath选择器(但是你也可以使用BeautifuSoup,?lxml或其他
任何你喜欢的程序),并生成解析的数据项。
4.? 最后,从蜘蛛返回的项目通常会进驻到项目管道。
5、Item?Pipeline(项目管道)
项目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当
您可能关注的文档
- PTT筒子纱染色.pdf
- publishingInspec 数据库培训-for 浙江大学.pdf
- PuH2气态分子热力学稳定性的理论研究.pdf
- Purchase Contract外贸采购销售样本.pdf
- PUR培训幻灯片8.0.pdf
- PU革,PVC革及合成纤维复合面料在热硫化鞋生产中的粘合问题.pdf
- PV159出厂检验报告.pdf
- PV3000光伏太阳能电池丝网印刷解决方案.pdf
- PVC保鲜膜中增塑剂DOP在水中迁移规律研究.pdf
- PVC加工用热稳定剂现状及发展.pdf
- 实训楼网络综合布线设计方案.doc
- 网络环境下的企业营销传播模式.pptx
- 学生选课管理系统数据库课程设计.doc
- 英美文学霍桑介绍.ppt
- 2025年黑龙江省牡丹江管理局北斗星协会初三下学期化学试题周末卷含解析.doc
- 2024-2025学年福建省泉州市重点名校初三3月第二次周考语文试题含解析.doc
- 广东省揭阳市华侨高级中学2025年语文高一下期末质量跟踪监视模拟试题含解析.doc
- 云南省麻栗坡民族中学2024年高三第二次调研历史试卷含解析.doc
- 河南省虞城县高级中学2025届高三高考全真模拟卷(三)英语试题含解析.doc
- 福建省龙岩市第五中学2025年初三4月质量调研(二模)语文试题理试题含解析.doc
原创力文档


文档评论(0)