zoukankan      html  css  js  c++  java
  • scrapy框架的理解

      在每一次学习一个新东西之前,需要知道的几个问题。这个东西是什么(what),怎么使用(how),为什么(why)

    scrapy的概念:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的框架。

    scrapy的作用:通过少量代码实现快速抓取。

    scrapy一共有5个模块和2个中间件,模块分别是Spider爬虫模块,engine引擎模块,scheduler调度器模块,Downloader下载器模块,Pipeline管道模块。中间件分别是Downloader--Middlewares(下载器中间件),

    Spider-Middlewares(爬虫中间件)。

    engine引擎模块:负责数据和信号在不同模块间的传递。

    scheduler调度器模块:实现一个队列,存放引擎发过来的request请求对象。

    Downloader下载器模块:发送引擎发过来的request请求,获取响应,并将response传递给引擎。

    Spider爬虫模块:处理引擎发过来的response,提取数据,提取url,并交给引擎。

    Pipeline管道模块:处理引擎传递过来的数据,比如存储。格式可以是csv、json、mongodb、redis、mysql.

    下载中间件(downloader middleware):可以自定义的下载扩展,比如设置代理Ip。

    爬虫中间件(spider middleware):可以自定义request请求和进行response过滤。

    scrapy的工作原理流程:

    1.spider---request---engine

    2.engine---request---scheduler

    3.scheduler---request---engine

    4.engine---request---downloader

    5.downloader---response---engine

    6.engine---response---spider

    7.spider---new_url---engine

    重复1-6

    8.spider---data---engine

    9.engine---data---pipeline

    scrapy框架的运行流程以及数据传递过程:

    1. 调度器把requests-->引擎-->下载中间件--->下载器
    2. 下载器发送请求,获取响应---->下载中间件---->引擎--->爬虫中间件--->爬虫
    3. 爬虫提取url地址,组装成request对象---->爬虫中间件--->引擎--->调度器
    4. 爬虫提取数据--->引擎--->管道
    5. 管道进行数据的处理和保存
  • 相关阅读:
    PCMan:Ubuntu下的最快的文件管理器
    Android 不需要root权限也可卸载系统应用的adb命令
    Directory Opus --- 布局灵活的文件管理,支持文件预览,强烈推荐
    Charles 抓包网络接口请求 修改请求参数 修改返回数据
    做直播app功能测试,怎么开展?
    Python字典内置函数和方法
    pycharm2020.3安装破解版激活教程 附:无限重置时间插件(mac windows linux)
    if not用法
    nvm安装与使用
    Python批量安装.Txt文件中的类库包
  • 原文地址:https://www.cnblogs.com/hjl666/p/10882737.html
Copyright © 2011-2022 走看看