Scrapy (网络爬虫框架)入门

一.Scrapy 简介:linux

Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,Scrapy 使用了 Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通信,能够加快咱们的下载速度,不用本身去实现异步框架,而且包含了各类中间件接口,能够灵活的完成各类需求。网络

二.Scrapy框架框架

1.框架图异步

绿色线是数据流向scrapy

2.框架图讲解:ide

功能讲解:网站

 

Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通信,信号、数据传递等。url

Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照必定的方式进行整理排列,入队,当引擎须要时,交还给引擎。spa

Downloader(下载器):负责下载Scrapy Engine(引擎)发送的全部Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,中间件

Spider(爬虫):它负责处理全部Responses,从中分析提取数据,获取Item字段须要的数据,并将须要跟进的URL提交给引擎,再次进入Scheduler(调度器),

Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.

Downloader Middlewares(下载中间件):你能够看成是一个能够自定义扩展下载功能的组件。

Spider Middlewares(Spider中间件):你能够理解为是一个能够自定扩展和操做引擎和Spider中间通讯的功能组件(好比进入Spider的Responses;和从Spider出去的Requests)

3.代码执行顺序:

 

①SPIDERS的yeild将request发送给ENGIN
②ENGINE对request不作任何处理发送给SCHEDULER
③SCHEDULER( url调度器),生成request交给ENGIN
④ENGINE拿到request,经过MIDDLEWARE进行层层过滤发送给DOWNLOADER
⑤DOWNLOADER在网上获取到response数据以后,又通过MIDDLEWARE进行层层过滤发送给ENGIN
⑥ENGINE获取到response数据以后,返回给SPIDERS,SPIDERS的parse()方法对获取到的response数据进行处理,解析出items或者requests
⑦将解析出来的items或者requests发送给ENGIN
⑧ENGIN获取到items或者requests,将items发送给ITEM PIPELINES,将requests发送给SCHEDULER

 

4.我的理解,代码执行过程:

代码从爬虫文件,spider开始爬取 > 爬取的网络请求发送给引擎 > 引擎分给调度器 > 调度器将请求放入队列中 > 分给下载器去处理request并获取response > 下载器将response发送给引擎,引擎又分配给爬虫spider处理,(处理数据的是爬虫文件中的parse方法),处理以后的数据 > 交给管道pipelines去存储,在处理过程当中 > 有新的请求,会再次执行上述过程

 

三 . Scrapy框架下创建爬虫项目

在linux系统平台下:

在终端执行命令:

1.建立项目:scrapy startproject  项目名称

2.建立爬虫:首先进入刚刚建立的项目目录下

                 接着执行:scrapy genspider  爬虫名  爬取的域名

3.执行怕爬虫:scrapy  crawl  爬虫名称

下图为常见命令:

 

四.配置pycharm 让Scrapy项目直接运行

步骤:1.首先在item.py配置,爬取的目标字段

格式:字段=scrapy.Field()

2.编写爬虫文件

3.编写pipelines管道文件

4.在settings.py中设置下

该字段右True改为False

在setting中打开ITEN_PIPELINES

 

5.在终端运行:执行爬虫文件的命令:scrapy  crawl  爬虫名称

就能够爬取到须要的数据,并保存在pipelines中设置的文件中

 

以上是scrapy的简单了解,接下来可使用scrapy结合pycharm,进行网络爬虫的尝试了

相关文章
相关标签/搜索