scrapy框架
scrapy是用python实现的一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包含数据挖掘, 信息处理或存储历史数据等一系列的程序中.
scrapy使用twisted基于事件的高效异步网络框架来处理网络通信, 可以加快下载速度, 不用自己去实现异步框架, 并且包含了各种中间件接口, 可以灵活的完成各种需求.
scrapy engine
引擎,负责控制数据流在系统中所有组件中流动, 并在相应动作发生时触发事件.次组件相当于爬虫的"大脑", 是整个爬虫的调度中心.
调度器
调度器接受从引擎发送来的request, 并将它们入队, 以便之后引擎请求它们时提供给引擎.
初始的爬取url和后续在页面中获取的待爬取的URl将放入调度器,等待爬取, 同时调度器会自动去除重复的URl(如果特定的URl不需要去重也可以通过设置实现, 如post请求的URl)
下载器(downloader)
下载器负责获取页面数据并提供给引擎, 而后提供给spider.
spider爬虫
spider是编写的类.
数据流
1.引擎打开一个网站,找到处理网站的spider并向该spider请求第一个要爬取的URl
- 引擎从spider中获取到第一个要爬取的URl并加入到调度器作为请求以备调度.
- 引擎向调度器请求下一个要爬取的URl