在scrapy和python都安装好以后,我们开始第一个简单的爬虫。首先为了能够很好地运用scrapy,我们先对scrapy的基础知识做一下了解。
一、Scrapy介绍
绿色线是数据流向,为了叙述清楚我们为每个阶段进行了编号。首先每个spider都有初始的URL(最初给定的网址),Scheduler(调度程序)向Downloader(下载器)发出Requests(如图所示1),Download进行下载。下载后向spiders返回Responses(如图所示2)。Spiders对Response进行分析,分为两种情况:一种是没有我们要抓取的数据,是需要进一步抓取的链接,如下一页链接,这些链接会被传回Scheduler(如图所示3);一种是含有我们要抓取的内容,spider便会抓取下来,交给Item Pipeline(项目管道)(如图所示4)。如此进行循环,直到没有可跟进的链接后爬虫便结束了。
附上每个组件的功能:
1.Scrapy Engine(Scrapy引擎)
Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。
2.Scheduler(调度程序)
调度程序从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求后返还给它们。
3.Downloader(下载器)
下载器的主要职责是抓取网页并将网页内容返还给蜘蛛(Spiders)。
4.Spiders(蜘蛛)
蜘蛛是有Scrapy用户自己定义用来解析网页并抓取制定URL返回的内容的类,每个蜘蛛都能处理一个域名或一组域名。换句话说就是用来定义特定网站的抓取和解析规则。
5.Item Pipeline(项目管道)
项目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,它的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。每个项目管道的组件都是有一个简单的方法组成的Python类。它们获取了项目并执行它们的方法,同时还需要确定的是是否需要在项目管道中继续执行下一步或是直接丢弃掉不处理。
项目管道通常执行的过程有:清洗HTML数据 验证解析到的数据(检查项目是否包含必要的字段) 检查是否是重复数据(如果重复就删除) 将解析到的数据存储到数据库中
6.Middlewares(中间件)
中间件是介于Scrapy引擎和其他组件之间的一个钩子框架,主要是为了提供一个自定义的代码来拓展Scrapy的功能。
网友评论