51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1650|回复: 1
打印 上一主题 下一主题

Scrapy爬虫框架简单解析

[复制链接]
  • TA的每日心情
    无聊
    9 小时前
  • 签到天数: 528 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-28 16:47:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    scrapy框架解析

    Scrapy框架大致包括以下几个组件:Scrapy Engine、Spiders、Scheduler、Item Pipeline、Downloader;


    组件Scrapy Engine

    这是框架的核心,负责控制数据流在整个系统的各个组件间的流动过程,并且在特定动作发生时触发相应事件。


    Scheduler

    调度程序从Scrapy引擎接受其传递过来的Request对象,并且将该对象加入到队列中,下次Scrapy引擎发出请求时再将对象传递给引擎。


    Downloader

    下载器负责对目标页面发出请求并且获取到页面反馈的数据,之后传递给Scrapy引擎,最终传递给爬虫进行数据提取。


    Spiders

    爬虫是Scrapy的用户自行编写的程序用来提取数据,针对下载器返沪的Response进行分析,或者指定其它需要跟进的URL和处理方法。


    Item Pipeline

    数据管道负责处理被爬虫提取出来的Item数据,可以定义多个数据管道来做多种不同的数据操作,比如数据清理、验证、写入数据库;Item可以在不同的数据管道中进行传递,可以设置每个数据管道的优先级,Item会按照优先级依次经过所有的数据管道。


    流程

    步骤如下:

    • 启动爬虫程序时,引擎开始爬取程序中给定的爬虫,然后获取到需要抓取的URL网址(可以通过爬虫类的属性Start_urls来指定或者重载爬虫类的start_request方法指定),然后将URL网址的Request传递给调度器;
    • 下载器从调度器那获取到相应的请求后发出请求,获得页面返回的数据,将返回的数据以Response的形式传递给爬虫;
    • 爬虫针对Response中的数据进行分析,提取出相应的数据以后,将数据填充到Item中,并且传递给数据管道;
    • 数据管道根据优先级顺序对Item依次进行处理,经过验证等后将Item中的数据保存到数据库中;
    • 继续从调度器中获取到下一个URL请求传递给下载器,重复第二步后的步骤;
    • 调度器中没有请求时,爬虫引擎则停止程序;

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 19:37 , Processed in 0.065733 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表