-
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,也可以应用在获取API所返回的数据(例 如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
-
Scrapy 使用了 Twisted异步网络库来处理网络通讯。整体架构大致如下
-
Scrapy框架主要由五大组件组成,它们分别是:
- 调度器(Scheduler)
- 下载器(Downloader)
- 爬虫(Spider)
- 实体管道(Item Pipeline)
- Scrapy引擎(Scrapy Engine)
-
组件是为了分布做铺垫的
-
引擎(scrapy)
- 用来处理整个系统的数据流,触发事务,属于框架核心
-
调度器(scheduler)
- 用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回(可以想象成一个URL 抓取网页的网址或者说是连接)的优先队列,由他决定下个要抓取的网址是什么,同时有去重功能
- 调度器包含两部分:过滤器和队列
-
下载器(Downloader)
- 用于下载网页内容 并将网页内容返回给Scrapy。下载器是建立在twisted这个高效的异步模型上的。