- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Scrapy入门教程了解ScrapyScrapy 是一套基于Twisted的异步处理框架,是纯python实现的爬虫框架,是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 当我们面对如下的环境时,Twisted通常是一个好的选择:程序中有许多任务,而且…任务之间高度独立(因此它们不需要互相通信,或者等待彼此)而且…在等待事件到来时,某些任务会阻塞。框架Scrapy的大体架构,其中包含了scheduler、item pipeline、downloader、spider以及engine这几个组件模块组件说明: Scrapy Engine(Scrapy引擎) ?Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流程。 Scheduler(调度) ?调度程序从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求后返还给他们。 Downloader(下载器) ?下载器的主要职责是抓取网页并将网页内容返还给蜘蛛( Spiders)。 Spiders(蜘蛛) 蜘蛛是有Scrapy用户自己定义用来解析网页并抓取制定URL返回的内容的类,每个蜘蛛都能处理一个域名或一组域名。换句话说就是用来定义特定网站的抓取和解析规则。 蜘蛛的整个抓取流程: 首先获取第一个URL的初始请求,当请求返回后调取一个回调函数。 在回调函数中,你可以解析网页响应并返回项目对象和请求对象或两者的迭代。 在回调函数中,你解析网站的内容,并生成解析的数据项。 最后,从蜘蛛返回的项目通常会进驻到项目管道。 Item Pipeline(项目管道) ?项目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。项目管道通常执行的过程有: 清洗HTML数据 验证解析到的数据(检查项目是否包含必要的字段) 检查是否是重复数据(如果重复就删除) 将解析到的数据存储到数据库中 数据处理流程 Scrapy的整个数据处理流程由Scrapy引擎进行控制,其主要的运行方式为: 引擎打开一个域名,时蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的URL。 引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。 引擎从调度那获取接下来进行爬取的页面。 调度将下一个爬取的URL返回给引擎,引擎将他们通过下载中间件发送到下载器。 当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。 引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。 蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。 引擎将抓取到的项目项目管道,并向调度发送请求。 系统重复第二部后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。 安装指南安装检查Python 2.7Python Package: /en/latest/installing.htmlpip and /pypi/setuptoolssetuptools. 现在 /en/latest/installing.htmlpip 依赖 /pypi/setuptoolssetuptools ,如果未安装,则会自动安装 /pypi/setuptoolssetuptools 。http://lxml.de/lxml. 大多数Linux发行版自带了lxml。如果缺失,请查看http://lxml.de/installation.html/pypi/pyOpenSSLOpenSSL. 除了Windows(请查看 http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/install.html平台安装指南)之外的系统都已经提供。 开发流程新建项目 (Project):新建一个新的爬虫项目明确目标(Item):定义提取的Item制作爬虫(Spider):编写爬取网站的 http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/spiders.htmlspider 并提取 http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/items.htmlItem存储内容(Pipeline):编写 http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/item-pipeline.htmlItem Pipeline 来存储提取到的Item(即数据)新建项目(Project)在任意目录下按住Shift键右击,选择“在此处打开命令窗口”,输入一下命令:scrapy startproject sjzx
文档评论(0)