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. 管道进行数据的处理和保存
  • 相关阅读:
    css3-13 如何改变文本框的轮廓颜色
    css3-13 css3的3D动画如何实现
    poj 2565 Ants (KM+思维)
    C语言功能 --C
    jQuery简要dom操作
    最近ubuntu 14.04 cpu高入住故障排除
    spring framework 4 源代码阅读器(1) --- 事前准备
    基于Haar特征Adaboost人脸检测级联分类
    ZOJ-3652-Maze(BFS)
    设计模式
  • 原文地址:https://www.cnblogs.com/hjl666/p/10882737.html
Copyright © 2011-2022 走看看