zoukankan      html  css  js  c++  java
  • Scrapy爬虫框架中的两个流程

    下面对比了Scrapy爬虫框架中的两个流程——

    Scrapy框架的基本运作流程;② Spider或其子类的几个方法的执行流程。

    这两个流程是互相联系的,可对比学习。

    1 ● Scrapy框架的基本运作流程

    Scrapy引擎从调度器(Scheduler)中获取一个链接(URL)

    Scrapy引擎将上述的URL封装成一个请求对象(Request),并传给下载器(Downloader)

    下载器(Downloader)把资源下载下来,并封装成响应对象(Response)

    Scrapy引擎从下载器中接收Response对象, 并通过爬虫中间件(Spider Middleware)发送给Spider解析 (Response对象默认交给Spider或其子类的parse方法解析)

    如果Response对象解析出实体(Item),则将Item传给实体管道(Item Pipeline)进行持久化等进一步的处理;如果解析出Request对象, 那么将Request对象传给调度器(Scheduler)等待抓取

    2 ● Spider或其子类的几个方法的执行流程

    __init__():初始化爬虫名字和start_urls列表

    start_requests() :该方法会调用make_requests_from url(),生成Requests对象,将该对象交给Scrapy引擎的Downloader下载并返回Response对象

    parse() : 根据指定的回调函数解析上述的Response对象,并返回Item对象或Request对象,Item传给Item Pipeline进行持久化等进一步的处理,而Request对象传给调度器(Scheduler)等待下载,下载完后由指定的回调函数处理(默认为parse()),一直进行循环,直到处理完所有的数据为止。

    Spider的子类CrawlSpider用于全站爬取,当编写爬虫规则(即Rule对象)时,应该避免使用parse作为回调函数,这是因为CrawlSpider使用parse方法来实现其逻辑,如果覆盖了 parse方法,crawl spider将会运行失败。

  • 相关阅读:
    sql月,年,统计报表sql报表
    Sql server在cmd下的使用
    c# 批量处理数据录入
    vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
    以太坊去中心化淘宝智能合约案例
    智能合约入门
    智能资产构建去中心化的资产管理系统
    以太坊搭建联盟链
    web 前端
    EasyUI+bootsrtap混合前端框架
  • 原文地址:https://www.cnblogs.com/ArrozZhu/p/8491302.html
Copyright © 2011-2022 走看看