1.spider作用:产生URL、对URL发送请求;利用parse()方法进行数据解析
2.引擎将封装的请求对象(URL)给调度器
3.调度器从队列中调用请求对象给引擎【调度器对请求对象进行过滤,之后存入队列中】
4.引擎将从调度器中获取的请求对象给下载器,下载器通过网络进行数据下载【下载的数据均在response中】
5.下载器将response给引擎
6.引擎将response给spider【其实就是将response给spider中的parse()方法,进行数据解析】
7.将解析后的数据封装到item中,并将item给引擎
8.引擎将item给管道,管道接收item,进行持久化存储
引擎的作用:
1.数据流处理
2.触发事件【完成对象实例化、方法、属性的调用】如:parse()方法就是由引擎调用
引擎如何保证合适触发事件?
引擎根据接收的流数据进行判断,根据不同的数据流比较判断调用何种方法。
五大核心组件
引擎(Scrapy):用来处理整个系统的数据流、触发事件(框架的核心)
调度器(Scheduler):用来接收引擎发送的请求,压入队列中,并在引擎再次请求的时候返回
下载器(Downloader):用来下载网页内容,并将网页内容返回给spider(Scrapy下载器是建立在twisted高效的异步模型上)
爬虫(Spider):用于从特定的网页中提取自己需要的信息,即所谓的实体(Item),用于也可以从中提取出链接,让Scrapy继续抓取下一个页面
项目管道(Pipeline):负责处理爬虫从网特种抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将给发送到项目管道,并经过几个特定的次序处理数据。