Scrapy 框架的使用
内容纲要
scrapy架构
最近迷上了spider,顺便找了一个框架来练练手
这个就是Python库 scrapy
Scrapy是一个为爬取网站数据、提取结构性数据而设计的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片 。
scrapy 模块介绍
- Scrapy engine (引擎) :负责控制系统所有组件之间的数据流,
- Scheduler( 调度器) :负责接收引擎发送过来的request请求,并按一定的方式排序入队。当引擎需要时交换给engine。
- Downloader(下载器): 负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理
- Spider (爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器) 。根据需要定义。
- Item Pipeline(管道):负责处理Spider中返回的Ietms,并进行后期处理,如存储,分析,过滤等。
- Downloader Middlewares(下载中间件): 下载中间件是位于Engine和Downloader之间的处理类。 当它们从Engine传递到Downloader时处理请求,以及从Downloader传递到Engine的响应。 功能非常强大详情https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
- Spider Middlewares(Spider中间件): 下载中间件是位于Engine和Downloader之间的响应, 当它们从Engine传递到Downloader时处理请求,以及从Downloader传递到Engine的响应 。
Scrapy 数据流
- engine 初始化获从spider获得Requests。
- engine安排 Requests 进入 Scheduler 并要求返回下个请求。
- Scheduler 返回一个新的请求。
- engine将请求发送到下载器,先通过下载中间处理后。
- 网页下载完成后,下载器生成 Response 发送到engine,会通过下载中间的处理。
- engine接收来自下载器的响应,并将他发送到指定的spider处理,并通过spider中间件
- 爬虫处理返回的响应和发送新的请求到engine,并通过spider中间件。
- engine处理接收的items并发送到items 管道。并将新的请求发送到 Scheduler 调度。
scrapy 实战
详情 项目地址 笔趣阁小说全站爬取
笔趣阁网站已经关闭,项目仅供参考