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

    最近想搞懂srapy,读了很多资料觉得这张图最好理解

    5+2模式

    五个模块

    SPIDERS:能提出需求产生爬取项item,爬取请求requests,解析响应response

    ENGINE:控制数据流,提供事件触发,核心部分

    SCHEDULER:接收请求,调度请求

    DOWNLOADER:工作模块,根据提供请求进行连接获取响应

    ITEM PIPELINES:以流水线获取SPIDERS产生的爬取项,由一组操作顺序组成,类似流水线,每个操作是一个ITEM PIPLINE类型,包括清理检验去重和导入数据库

    两个中间键

    DOWNLOADER  MIDDLEWARE:在ENGINE,SCHEDULER,DOWNLOADER之间修改,丢弃或新增请求或响应

    SPIDER MIDDLEWARE:在SPIDER,ENGINE之间,对sipder产生的请求或爬取项进行再处理,修改,丢弃或新增请求或爬取项

    三条路线:

    1.spiders-REQUESTS-engine-REQUESTS-scheduler:用户提出需求,请求调度

    2.scheduler-REQUESTS-engine-REQUERSTS-downloader-RESPONSE-engine-RESPONSE-spider:真实爬取请求下载,返回响应内容

    3.spiders-ITEMS/TEQUESTS-engine-ITEMS-item pipelines-REQUESTS-scheduler:存储数据,提出新的请求

    SPIDERS是入口,ITEM PIPELINES是出口,这两个模块也是用户主要操作的模块

    SCHEDULER,ENIGINE,DOWNLOADER已有功能实现,完成既定内容,配置模块

    与requests库比较:

    可以进行网页请求与爬取

    无法应对JS和验证码

    并发性好,一般性定制灵活,深度定制困难

    常用命令总结

    命令行scrapy -h

    结构:scrapy <command>[options][args]

    startproject 创建新工程         scrapy startproject <name>[dir]

    genspider   创建一个爬虫        scrapy genspider [options]<name><domiain>

    settings    获得爬虫配置信息      scrapy settings [options]

    crawl     运行一个爬虫        scrapy crawl <spider>

    list       列出工程中所有爬虫  scrapy list

    shell    启动URL调试命令行  scrapy shell [URL]

  • 相关阅读:
    问题解决-Plugin with id 'com.github.dcendents.android-maven' not found
    hadoop 04 一 HA高可用配置
    hadoop 03 一 Hadoop机架感知配置
    Windows平台安装配置Hadoop
    hadoop 02一 hadoop配置
    hadoop 01一 hadoop安装配置
    Centos7下载和安装教程
    mysql 命令行导出数据
    RabbitMQ 集群部署(linux-centos6.5)
    Spring 集成RabbitMq
  • 原文地址:https://www.cnblogs.com/zsc329/p/9363034.html
Copyright © 2011-2022 走看看