zoukankan      html  css  js  c++  java
  • 爬虫框架scrapy(3)五大核心组件

    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和引擎之间,也可以拦截请求和响应对象,不常用。

  • 相关阅读:
    DFS(深度优先搜索)
    dp动态规划 之 背包问题
    python选择排序的实现
    python冒泡排序实现
    python 数据类型
    SyntaxError: Missing parentheses in call to 'print'
    MFC位图传送错误之一
    SyntaxError :invalid syntax
    Python之命令行参数
    Python之print
  • 原文地址:https://www.cnblogs.com/wszxdzd/p/10269222.html
Copyright © 2011-2022 走看看