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

  • 相关阅读:
    js获取上传图片真实的尺寸大小和存储大小
    java中Class.getResource用法(用于配置文件的读取)
    Spring Boot Application 事件和监听器
    docker打包centos增加中文支持
    安装polyglot出错
    docker内程序如何读取dockerfile和compose.yml中设置的环境变量
    Docker 构建网络服务后本机不能访问
    docker 错误:Error response from daemon: cannot stop container: connect: connection refused": unknown
    Mac上把python源文件编译成so文件
    Mac下更改Python pip的源
  • 原文地址:https://www.cnblogs.com/wszxdzd/p/10269222.html
Copyright © 2020-2023  润新知