• Python爬虫:Scrapy爬虫框架


    Scrapy不是一个函数功能库,而是一个爬虫框架。

    Scrapy爬虫框架包含7个部分,即5+2结构:5个框架主体部分,2个中间键。

    5个模块

    engine模块

    已有实现。

    • 整个框架的核心,控制所有模块之间的数据流,任何模块与模块之间的数据流动都要经过engine模块的调度。
    • 根据条件触发事件;根据各个模块提供的事件进行触发。

    scheduler模块

    已有实现。

    • 对所有的爬取请求进行调度管理。假如有许多请求,哪些先访问哪些后访问,由scheduler模块来调度。

    item pipelines模块

    出口;用户编写(配置)
    负责对提取的信息进行后处理。

    • 以流水线方式处理Spider产生得爬取项。
    • 由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型。
    • 可能操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库。

    spiders模块

    入口;用户编写(配置)
    用来向整个框架提供要访问的url链接,同时要解析从网络上获得的页面的内容。

    向整个框架提供了最初始得访问链接,同时对每次爬取回来得内容进行解析,产生再次产生新的爬取请求,并且从内容中分析出提取出相关得数据。

    • 解析Downloader返回的响应(Response)
    • 产生爬取项(scraped item)
    • 产生额外的爬取请求(Request)

    downloader模块

    已有实现。

    • 根据用户提供的请求下载网页。获得一个请求,向网络中提交请求,获得返回的相关内容。

    2个中间键

    spiders中间键:spiders Middleware

    engine和spiders之间。
    目的:对请求和爬取项的再处理。
    功能:修改、丢弃、新增请求或爬取项。

    下载器中间键:Downloader Middleware

    engine和downloader之间。
    目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制。
    功能:修改、丢弃、新增请求或响应。
    用户可以编写配置代码。但是如果用户不需要对request和response进行修改,就不用更改这个中间键。

    中间键参考:
    https://cloud.tencent.com/developer/article/1382045
    https://cloud.tencent.com/developer/article/1382077
    https://blog.csdn.net/chanql123/article/details/100103348

    3条主要的数据流路径

    第1条数据流

    从spiders模块,经过engine模块,到达scheduler模块。

    engine从spiders的地方获得了爬取用户的请求(简单理解为url),这种请求即request。

    第2条数据流

    从scheduler模块,经过engine模块,到达downloader模块。downloader模块的数据再经过engine模块,返回到spiders模块。

    第3条数据流

    从spiders模块,经过engine模块,到达item pipelines模块以及scheduler模块。

    其中,到达scheduler模块的request与第1条数据流的过程是一样的。区别在于,第1条数据流中的request直接来自spiders,第3条数据流中的request是来自downloader的。

  • 相关阅读:
    centos nginx 405错误
    使用Python自带模块发送邮件
    centos 文件权限问题chmod
    Python发送企业微信群机器人消息
    centos 如何查看用户
    linux中的.bashrc文件
    gunicorn的用法
    测试内容上线之后,要进行线上验证和持续的跟进,这应该变成一个职业习惯,这是为了自己的事情负责
    测试平台使用git+Jenkins进行持续集成
    Nginx配置使用详解
  • 原文地址:https://www.cnblogs.com/tsuish/p/16293514.html
Copyright © 2020-2023  润新知