今天小编就为大家详细讲解一下Scrapy爬虫框架。/01/Scrapy爬虫框架Scrapy是一个用Python编程语言编写的爬虫框架。任何人都可以根据自己的需要进行修改,使用起来非常方便。可应用于数据采集、数据挖掘、网络异常用户检测、数据存储等。Scrapy使用Twisted异步网络库来处理网络通信。整体结构大致如下图所示。/02/Scrapy爬虫框架的组成从上图可以看出,Scrapy爬虫框架主要由5部分组成,分别是:ScrapyEngine(爬虫引擎)、Scheduler(调度器)、Downloader(下载器)、Spiders(spider),ItemPipeline(项目管道)。爬取过程是Scrapy引擎发出请求,然后调度器将初始URL给下载器,下载器再向服务器发送服务请求,得到响应后,将下载的网页内容交给蜘蛛进行处理,然后蜘蛛将对网页进行详细分析。蜘蛛分析的结果有两种:一种是获取新的URL,然后再次请求调度器开始新一轮的抓取,不断重复上述过程;另一种是获取需要的数据,将转发给Giveprojectpipeline继续处理。项目流水线负责数据清洗、校验、过滤、去重、存储等后处理,最后流水线输出到文件或存入数据库。/03/五大组件及其中间件的作用五大组件及其中间件的作用如下:1)Scrapy引擎:控制整个系统的数据处理流程,触发事务处理流程,是负责连接各个模块2)调度器(scheduler):维护待抓取的URL队列。当引擎发送的请求被接受后,会从待抓取的URL队列中取出下一个URL返回给调度器。3)下载器(downloader):向下载网页内容的web服务器发送下载页面的请求,将网页内容交给蜘蛛处理。4)蜘蛛:制定要爬取的网站地址,选择需要的数据内容,定义域名过滤规则和网页分析规则等。5)项目管道(itempipeline):处理蜘蛛从网页中提取的数据,主要任务是清理、验证、过滤、去重和存储数据等。6)中间件(Middlewares):中间件是Scrapy引擎与Scheduler、Downloader、Spiders之间的组件,主要处理它们之间的请求和响应。Scrapy爬虫框架可以轻松完成在线数据的采集。它简单、轻便,使用起来非常方便。/04/基于Scrapy的网络爬虫的设计与实现在了解Scrapy爬虫原理和框架的基础上,本节简要介绍Scrapy爬虫框架的数据采集过程。4.1创建爬虫工程文件基于scrapy爬虫框架,只要在命令行输入“scrapystartprojectarticle”命令,就会自动创建一个名为article的爬虫工程。首先进入文章文件夹,输入命令“cdarticle”,然后通过“dir”查看目录,或者通过“tree/f”生成文件目录的树形结构,如下图所示,可以可以清楚地看到Scrapycreate命令生成的文件。爬虫项目目录结构最顶层的article文件夹为项目名,第二层包含一个与项目名同名的文件夹article和一个scrapy.cfg文件。与项目同名的文章文件夹是一个模块。所有项目代码都添加在该模块中,scrapy.cfg文件是整个Scrapy项目的配置文件。第三层有5个文件和一个文件夹,其中__init__.py是一个空文件,作用是将其父目录变成模块;items.py是一个定义存储对象的文件,它决定了要爬取哪些项目;middlewares.py文件是中间件,一般不需要修改。主要负责相关组件之间的请求和响应;pipelines.py是管道文件,决定了如何处理和存储爬取的数据;settings.py为项目设置文件,设置项目流水线数据的处理方式、爬虫频率、表名等;spiders文件夹包含爬虫主文件(用于实现爬虫逻辑)和一个空的__init__.py文件。4.2之后开始分析网页结构和数据,修改Items.py文件,编写hangyunSpider.py文件,修改pipelines.py文件,修改settings.py文件。这些步骤的具体操作会在后面的文章中专门展开,这里不再赘述。4.3执行爬虫程序修改以上四个文件后,在Windows命令提示符窗口输入cmd命令进入爬虫所在路径,执行“scrapy爬取文章”命令,即可运行爬虫程序,最后将数据保存到本地磁盘上级。/05/结语随着互联网信息量的不断增加,需要借助网络爬虫工具来获取所需的信息。使用开源的Scrapy爬虫框架,不仅可以实现高效、准确、自动地获取网络信息,还可以方便研究人员对采集到的数据进行后续挖掘和分析。
