Python

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 数据流

  1. engine 初始化获从spider获得Requests。
  2. engine安排 Requests 进入 Scheduler 并要求返回下个请求。
  3. Scheduler 返回一个新的请求。
  4. engine将请求发送到下载器,先通过下载中间处理后。
  5. 网页下载完成后,下载器生成 Response 发送到engine,会通过下载中间的处理。
  6. engine接收来自下载器的响应,并将他发送到指定的spider处理,并通过spider中间件
  7. 爬虫处理返回的响应和发送新的请求到engine,并通过spider中间件。
  8. engine处理接收的items并发送到items 管道。并将新的请求发送到 Scheduler 调度。

scrapy 实战

详情 项目地址 笔趣阁小说全站爬取

笔趣阁网站已经关闭,项目仅供参考

发表评论

Title - Artist
0:00
    %d 博主赞过: