scrapy 五大核心组件的工作流程
当执行爬虫文件时,5大核心组件就在工作了
spiders 引擎(Scrapy Engine)管道(item Pipeline)调度器(Scheduler)下载器(Downloader)
首先执行爬虫文件spider,spider的作用是
(1)解析(2)发请求,原始的url存储在于spider中
1:当spider执行的时候,首先对起始的url发送请求,将起始url封装成请求对象
2:将请求对象传递给引擎
3:引擎将请求对象传递给调度器(内部含有队列和过滤器两个机制),调度器将请求存储在队列(先进先出)中
4:调度器从队列中调度出url的相应对象再将请求传递给引擎
5:引擎将请求对象通过下载中间件发送给下载器
6:下载器拿到请求到互联网上去下载
7:互联网将下载好的数据封装到响应对象给到下载器
8:下载器将响应对象通过下载中间件发送给引擎
9:引擎将封装了数据的响应对象回传给spider类parse方法中的response对象
10:spider中的parse方法被调用,response就有了响应值
11:在spider的parse方法中进行解析代码的编写;
(1)会解析出另外一批url,(2)会解析出相关的文本数据
12: 将解析拿到的数据封装到item中
13:item将封装的文本数据提交给引擎
14:引擎将数据提交给管道进行持久化存储(一次完整的请求数据)
15:如果parder方法中解析到的另外一批url想继续提交可以继续手动进行发请求
16:spider将这批请求对象封装提交给引擎
17:引擎将这批请求对象发配给调度器
16:这批url通过调度器中过滤器过滤掉重复的url存储在调度器的队列中
17:调度器再将这批请求对象进行请求的调度发送给引擎
引擎作用:
1:处理流数据 2:触发事物
引擎根据相互的数据流做判断,根据拿到的流数据进行下一步组件中方法的调用
下载中间件: 位于引擎和下载器之间,可以拦截请求和响应对象;拦截到请求和响应对象后可以
篡改页面内容和请求和响应头信息。
爬虫中间件:位于spider和引擎之间,也可以拦截请求和响应对象,不常用。