zoukankan      html  css  js  c++  java
  • Scrapy爬虫框架解析

    Scrapy框架解析

    Scrapy框架大致包括以下几个组件:Scrapy Engine、Spiders、Scheduler、Item Pipeline、Downloader;

    组件

    Scrapy Engine

    这是框架的核心,负责控制数据流在整个系统的各个组件间的流动过程,并且在特定动作发生时触发相应事件。

    Scheduler

    调度程序从Scrapy引擎接受其传递过来的Request对象,并且将该对象加入到队列中,下次Scrapy引擎发出请求时再将对象传递给引擎。

    Downloader

    下载器负责对目标页面发出请求并且获取到页面反馈的数据,之后传递给Scrapy引擎,最终传递给爬虫进行数据提取。

    Spiders

    爬虫是Scrapy的用户自行编写的程序用来提取数据,针对下载器返沪的Response进行分析,或者指定其它需要跟进的URL和处理方法。

    Item Pipeline

    数据管道负责处理被爬虫提取出来的Item数据,可以定义多个数据管道来做多种不同的数据操作,比如数据清理、验证、写入数据库;Item可以在不同的数据管道中进行传递,可以设置每个数据管道的优先级,Item会按照优先级依次经过所有的数据管道。

    流程

    它的流程图如下:

    步骤如下:

    1. 启动爬虫程序时,引擎开始爬取程序中给定的爬虫,然后获取到需要抓取的URL网址(可以通过爬虫类的属性Start_urls来指定或者重载爬虫类的start_request方法指定),然后将URL网址的Request传递给调度器;
    2. 下载器从调度器那获取到相应的请求后发出请求,获得页面返回的数据,将返回的数据以Response的形式传递给爬虫;
    3. 爬虫针对Response中的数据进行分析,提取出相应的数据以后,将数据填充到Item中,并且传递给数据管道;
    4. 数据管道根据优先级顺序对Item依次进行处理,经过验证等后将Item中的数据保存到数据库中;
    5. 继续从调度器中获取到下一个URL请求传递给下载器,重复第二步后的步骤;
    6. 调度器中没有请求时,爬虫引擎则停止程序;
  • 相关阅读:
    elasticsearch 中的Multi Match Query
    activiti 流程部署的各种方式
    elasticsearch 嵌套对象之嵌套类型
    elasticsearch Java High Level REST 相关操作封装
    elasticsearch 字段数据类型
    ubuntu 安装 docker
    elasticsearch 通过HTTP RESTful API 操作数据
    facenet 人脸识别(二)——创建人脸库搭建人脸识别系统
    POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)
    墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
  • 原文地址:https://www.cnblogs.com/George1994/p/7543993.html
Copyright © 2011-2022 走看看