• 001 Scrapy框架入门


    [A] Scrapy简介

      1. Scrapy使用纯Python实现一个爬取网站数据,提取结构性数据而编写的应用框架,用途十分广泛

      2. 在Scrapy框架下,用户只需要定值开发几个模块就可以轻松的实现一个爬虫

      3. Scrapy使用了Twisted(其主要对手是Tornado)异步网络来处理网络请求,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的满足各种需求

    [B] Scrapy框架图(绿线为数据流向)

        Scrapy采取 5 + 2 的结构模式,即 5个模块 + 2 个中间件

      五个模块:

        1. Scrapy Engine(引擎)

            负责Spider(爬虫),ItemPipeline(管道),Downloader,Scheduler中间的通讯,信号,数据的传输等

        2. Scheduler(调度器)

            负责接受 Scrapy Engine(引擎) 发过来的 Request 请求,并按照一定的方式进行整理排列、入队,当 Scrapy Engine(引擎) 需要时,交还给引擎

        3. Downloader(下载器)

            负责下载 Scrapy Engine(引擎) 发过来的所有 Request 请求,并将其获取到的Responses交还给 Scrapy Engine(引擎),由 Scrapy Engine(引擎) 交给Spider(爬虫) 来处理

        4. Spider(爬虫)

            负责处理所有 Responses ,从中Fenix提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给 Scrapy Engine(引擎) ,再次进入 Scheduler(调度器) 

        5. Item Pipeline(管道)

            负责处理Spider中获取到的 Item ,并进行后期处理(详细分析,过滤,存储等)。

      两个中间件:

        1. Downloader(下载中间件)

            可以当做一个自定义拓展下载功能的组件

        2. Spider Middlewares(Spider中间件)

            可以理解为一个自定义拓展和操作Scrapy Engine(引擎) 和 Spider(爬虫) 中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

      

    [C] 制作Scrapy爬虫的步骤

        一共需要4个步骤:

      1. 新建项目 (scrapy stratproject xxx) 

          创建一个新的爬虫项目

      2. 明确目标 (编写 items.py)

          明确你要爬取的目标

      3. 制作爬虫 (spider / xxxspider.py)

          制作爬虫开始爬取网页

      4. 存储内容 (pipeline.py)

          设计管道存储爬取内容

  • 相关阅读:
    show processlist 输出ID 和 information_schema.PROCESSLIST 的id,information_schema.innodb_trx的TRX_MYSQL_T
    用 Flask 来写个轻博客 (15) — M(V)C_实现博文页面评论表单
    第十二章 对象(下)
    十大最值得关注的国内大数据分析厂商
    第十二章 对象(上)
    mysql 区间锁 对于没有索引 非唯一索引 唯一索引 各种情况
    insert into select 堵塞update
    监控持有sql和被堵塞的sql
    人生应该有间隔年——北漂18年(75)
    ERROR: transport error 202: connect failed: Connection timed out
  • 原文地址:https://www.cnblogs.com/carreyBlog/p/14070665.html
Copyright © 2020-2023  润新知