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]

  • 相关阅读:
    android canvas drawtext 字高
    ios修改UIIMage大小
    聊聊视频播放那些事2
    聊聊视频播放那些事1
    重入锁 ReentrantLock (转)(学习记录)
    setHasFixedSize(true)的意义 (转)
    ActivityLifecycleCallbacks
    NSSet
    阿里云ECS服务器IIS和WampServer同时运行
    ASP.NET MVC4网站部署在阿里ECS云服务器(WIndows Server 2012+IIS8环境)
  • 原文地址:https://www.cnblogs.com/zsc329/p/9363034.html
Copyright © 2011-2022 走看看