当前位置: 首页 > news >正文

通过爬虫抓取上市企业利润表并在睿思BI中展示

睿思BI从v5.3开始支持网络爬虫,可以从指定URL抓取表格数据,本示例实现从网络上抓取上市企业招商银行的利润表数据,并在睿思BI中进行展现。

功能演示URL:https://www.ruisitech.com/rsbi-ultimate/#/dashboard/ShareView?token=31f6159469ae4e7b8108f9d66eed5658

首先:从搜狐财经抓取招商银行利润表数据,操作过程如下:

1.在睿思BI系统数据抽取页面,点击加号按钮,选择通过爬虫抽取数据菜单,系统进入爬虫配置页面,如下图:

2.录入招商银行利润表的页面URL,设置编码方式,点击解析网页按钮,结果如下图:

3.选择需要解析的表格数据,点击下一步,进入爬虫数据映射配置页面,如下图:

4.根据数据预览界面中的数据结构,新建数据表,然后配置字段映射、设置任务节点名称、配置完成后,点击执行按钮,把数据抽取到睿思BI系统的表中(此处建的表都是字符字段类型)。

第二步:对抽取的数据进行清洗

1.在数据转换模块,点击加号按钮选择创建JS脚本菜单,编写js代码把字段类型转换成数字类型,代码如下图: 

var q12023 = row.get("2023q1");
var q42022 = row.get("2022q4");
var q32022 = row.get("2022q3");
var q22022 = row.get("2022q2");
if(q12023 == '--'){q12023 = null;
}else{q12023 = Number(q12023);
}
if(q42022 == '--'){q42022 = null;
}else{q42022 = Number(q42022);
}
if(q32022 == '--'){q32022 = null;
}else{q32022 = Number(q32022);
}
if(q22022 == '--'){q22022 = null;
}else{q22022 = Number(q22022);
}
row.put("2023q1", q12023);
row.put("2022q4", q42022);
row.put("2022q3", q32022);
row.put("2022q2", q22022);
return row;

2.再通过数据转换模块的 SQL脚本功能,编写SQL语句把表的季度字段转换成维度,SQL语句如下图:

select zq, 2023q1 as 'kpi', '202303' as quarter, companyfrom dw_finance_lrb_changetypeunion allselect zq, 2022q4 as 'kpi', '202212' as quarter, companyfrom dw_finance_lrb_changetypeunion allselect zq, 2022q3 as 'kpi', '202209' as quarter, companyfrom dw_finance_lrb_changetypeunion allselect zq, 2022q2 as 'kpi','202206' as quarter, companyfrom dw_finance_lrb_changetype

3.通过数据填报功能,创建利润表的科目信息,并设置科目的ID,PID,level等字段内容,数据如下图:

直接通过数据填报的批量导入功能,把科目表数据导入系统中。

3.通过数据转换的SQL脚本功能,把利润表和科目表进行关联,sql如下:

select a.kpi, a.company, a.quarter, b.name, b.id, b.pid, b.levelfrom dm_finance_lrb_kpi a, kemu bwhere a.zq = b.name

 第三步:对清洗后的数据进行建模

1.主要配置维度和度量,如下图所示:

2.请注意:其中季度是时间维度,维度类型为季度,科目是父子维度,需要在维度中进行配置,界面如下图:

  第四步:在仪表盘中展现招商银行的利润表

1.创建交叉表组件,选择刚才创建的立方体,如下图:

 2.把科目的一级,二级拖入交叉表的行标签中,把季度放入列标签中,把金额放入季度的下方,如下图:

3.在交叉表属性面板中勾选折叠父子维度,再配置仪表盘的筛选上市企业的参数,最终效果如下图:

http://www.lryc.cn/news/131720.html

相关文章:

  • 填充柄功能
  • Python爬虫性能优化:多进程协程提速实践指南
  • mongodb export(2023新)
  • css-flex使用
  • SAP安全库存-安全库存共享、安全库存简介
  • CentOS自己搭建时钟同步服务实操
  • 高阶数据结构-图
  • Linux/Ubuntu 的日常升级和安全更新,如何操作?
  • Linux自动挂载U盘
  • Edge浏览器免费使用GPT3.5
  • 面试题--redis篇
  • Android Studio 新建module报错:No signature of method
  • python使用dir()函数获取对象中可用的属性和方法(看不到python源码又想知道怎么调用,DLL调用分析,SDK二次开发技巧)
  • 【MySQL系列】SQL语句入门(创建删除操作)、字符集和数据类型详解
  • 谈谈召回率(R值),准确率(P值)及F值
  • 【脚本推荐】网页字体渲染插件
  • c++——c/c++中的static和const
  • 解决git:‘remote-http‘ 不是一个 git 命令错误提示
  • 深度学习入门-3-计算机视觉-卷积神经网络
  • 前端面试:【闭包】JavaScript世界的神秘法术
  • Ubuntu20 ctrl+alt+T无法打开终端
  • leetcode 387.字符串中第一个唯一字符
  • 【三次握手】TCP三次握手由入门到精通(完整版)
  • Java 异步计算
  • 【FAQ】调用视频汇聚平台EasyCVR的iframe地址,视频无法播放的原因排查
  • ⛳ TCP 协议面试题
  • C 语言的字符串函数 puts()
  • Flutter如何知道页面/组件可见?
  • 【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库
  • 【c++】c++的一些技术操作