Scrapy核心组件与运行机制
引言
这一章开始讲解Scrapy核心组件的功能与作用,通过流程图了解整体的运行机制,然后了解它的安装与项目创建,为后续实战做好准备。
Scrapy定义
Scrapy是一个为了爬取网站数据、提取结构性数据而编写的应用框架。它使用Python语言编写,并基于异步网络框架Twisted来实现高性能的爬虫。Scrapy最初是为了页面抓取(更确切地说是网络抓取)而设计的,但它也可以用于获取API返回的数据或通用的网络爬虫。
体系结构图
Scrapy核心组件
Scrapy框架主要由以下几个核心组件构成:
- 引擎(Engine):Scrapy的引擎负责控制数据流在系统中所有组件之间的流动。它接收请求并将其分派给调度器,同时也接收来自下载器的响应并将其分派给相应的Spider进行处理。
- 调度器(Scheduler):调度器负责接收请求并将其加入队列中,以便在引擎空闲时按一定的顺序分派给下载器。Scrapy默认使用优先级队列来实现调度器。
- 下载器(Downloader):下载器负责获取网页内容。当引擎将请求分派给下载器时,下载器会向目标网站发起请求,并将获取到的响应返回给引擎。
- Spider:Spider是Scrapy框架中的核心组件之一,负责处理网页内容并提取结构化数据。每个Spider都需要定义一个或多个解析方法,用于从响应中提取数据。
- 项目管道(Item