zoukankan      html  css  js  c++  java
  • Scrapy五大核心组件简介

    五大核心组件

    scrapy框架主要由五大组件组成,他们分别是调度器(Scheduler),下载器(Downloader),爬虫(Spider),和实体管道(Item Pipeline),Scrapy引擎(Scrapy Fngine)

    下面我们说说他们各自的作用:

    调度器

    用来接受引擎发过来的请求,由过滤器重复的url并将其压入队列中,在引擎再次请求的时候返回,
    可以想象成一个URL(抓取网页的网址或者说是链接)的优先队列,由他决定下一个要抓取的网址是什么,用户可以根据自己的需求定制调度器

    下载器

    下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源,Scrapy的下载器代码不会太复杂,但效率高(原因:Scrapy下载器是建立在twisted这个高效的异步模型上的)

    爬虫

    爬虫是主要干活的,用户最关心的部分, 它可以生成url, 并从特定的url中提取自己需要的信息, 即所谓的实体(Item). 用户也可以从中提取出链接, 让Scrapy继续抓取下一个页面.

    实体管道

    负责处理爬虫从网页中抽取的实体, 主要的功能是持久化实体、验证实体的有效性、清除不需要的信息. 当页面被爬虫解析后, 将被发送到项目管道, 并经过几个特定的次序处理数据.

    引擎

    Scrapy引擎是整个框架的核心。它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。对整个系统的数据流进行处理, 触发事务(框架核心).

    工作流程

    步骤详解:

    1.spider中的url被封装成请求对象交给引擎(每一个对应一个请求对象)

    2.引擎拿到请求对象之后,将全部交给调度器

    3.调度器闹到所有请求对象后,通过内部的过滤器过滤掉重复的url,最后将去重后的所有url对应的请求对象压入到队列中,随后调度器调度出其中一个请求对象,并将其交给引擎

    4.引擎将调度器调度出的请求对象交给下载器

    5.下载器拿到该请求对象去互联网中下载数据

    6.数据下载成功后会被封装到response中,随后response会被交给下载器

    7.下载器将response交给引擎

    8.引擎将response交给spiders

    9.spiders拿到response后调用回调方法进行数据解析,解析成功后生成item,随后spiders将item交给引擎

    10引擎将item交给管道,管道拿到item后进行数据的持久化存储

  • 相关阅读:
    webstorm 对 vue的设置
    chrome的adblock插件报DevTools failed to parse SourceMap
    textContent和innerText属性的区别
    心得体悟帖---200417(做人做事一定要有策略,人和人之间的交互都是博弈,对每个人本能的防御机制)
    心得体悟帖---200417(最坏的结局)
    心得体悟帖---200417(好好整理下外形,对提升信心特别有帮助)
    树莓派系统的常用的命令
    树莓派
    fastjson中转字符串时格式化、显示null值等
    JSONPath
  • 原文地址:https://www.cnblogs.com/tianshuai1/p/10871961.html
Copyright © 2011-2022 走看看