说说你常使用的爬虫框架,它有什么优点?

我平常使用的是 scrapy 框架,scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码,就能够快速的抓取到数据内容。Scrapy 使用了 Twisted 异步网络框架来处理网络通讯,可以加快我们 的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。

scrapy 组成部分

1】引擎(Engine)----------整个框架核心
【2】爬虫程序(Spider)------数据解析提取
【3】调度器(Scheduler)-----维护请求队列
【4】下载器(Downloader)----获取响应对象
【5】管道文件(Pipeline)-----数据入库处理


【两个中间件】
    下载器中间件(Downloader Middlewares)
        引擎->下载器,包装请求(随机代理等)
    蜘蛛中间件(Spider Middlewares)
        引擎->爬虫文件,可修改响应对象属性

scrapy 框架的工作流程:

1】爬虫项目启动,由引擎向爬虫程序索要第一批要爬取的URL,交给调度器去入队列
【2】调度器处理请求后出队列,通过下载器中间件交给下载器去下载
【3】下载器得到响应对象后,通过蜘蛛中间件交给爬虫程序
【4】爬虫程序进行数据提取:
    4.1) 数据交给管道文件去入库处理
    4.2) 对于需要继续跟进的URL,再次交给调度器入队列,依次循环

scrapy 的优缺点?

  • 优点:

    1)scrapy 是异步的

    2)采取可读性更强的 xpath 代替正则

    3)强大的统计和 log 系统

    4)同时在不同的 url 上爬行

    5)支持 shell 方式,方便独立调试

    5)写 middleware,方便写一些统一的过滤器

    6)通过管道的方式存入数据库

  • 缺点:

    1) 基于 python 的爬虫框架,扩展性比较差

    2) 基于 twisted 框架,运行中的 exception 是不会干掉 reactor(反应器),并且异步框架出错后

    是不会停掉其他任务的,数据出错后难以察觉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值