抓取网页数据php(PowerBI财务报表分析系列之:数据准备篇(000002)(图))
优采云 发布时间: 2022-03-24 07:18抓取网页数据php(PowerBI财务报表分析系列之:数据准备篇(000002)(图))
PowerBI财务报表分析系列:
数据准备
数据分析的第一步是在开始后续的一系列分析过程之前拥有数据。PowerBI 财务报表分析也不例外。在第一篇文章中,我们先介绍报表数据的获取,并将获取的数据整理成合适的分析。风格。
本分析示例使用的是上市公司数据,因此数据获取的主要工作是使用PowerBI批量抓取网页数据。
如果你的分析对象是公司的财务报表,会更方便。您可以跳过网络抓取数据的过程,直接组织数据。但是,如果你已经学会了使用 PowerBI 抓取网页数据的技巧,你以后可以随时使用它。在。
在下方输入文字。
本PowerBI财务报表分析报告使用5家上市公司2010年至2019年的资产负债表、损益表和*敏*感*词*流量表数据。
数据来自新浪财经,首先选择一家公司,比如万科A,点击财务报表>资产负债表>2019,出现在我面前的网页如下:
2019年四季度的资产负债表同时显示,数据结构很好,可以为后期整理节省大量工作。
然后看这个URL结构:
猜测资产负债表和000002、2019分别代表万科的资产负债表、股票代码和年份,可以通过更改公司和年份来验证。比如五粮液2018年的损益表,网址是:
和猜测的一模一样,那么就可以使用PowerBI批量抓取了。
捕捉多家公司、多年、多份报告的总体思路:
1、先抓一个公司一年的报告;
2、使用步骤 1 中的查询创建自定义函数;
3、构造参数列表;
4.调用自定义函数批量抓取数据。
下面进入具体操作步骤。
1.使用PowerBI抓取公司一年的报表
以上面第一个 URL:万科 2019 年资产负债表为例,点击 Get Data > From web,输入 URL,在弹出的导航器中会看到 PowerBI 识别的很多表,因为这个页面原本也就是多组数据,分别点击查看,你会看到表17的结构是最规范的,
选择表,然后加载数据并进入 Power Query 编辑器。
先观察这张表的数据,空值显示为“--”,先用0代替,然后用第一行作为表头:
如果对 PowerQuery 的基本操作不熟悉,推荐看看这个文章:
数据清洗中最常用的十三个技巧
这是一个二维结构表。为方便后续分析,将其转为一维表:选中第一列,点击Unpivot > Unpivot other columns,即为一维表:
如果你对一维表不了解,可以参考:关于一维表,你想知道的都在这里
万科2019年资产负债表已提取整理。
其实这一步到这里就可以结束了。但是在这个模型中,为了简化,我删除了*敏*感*词*流量表间接法的附加数据,只保留了直接法的*敏*感*词*流量表项目。因此,我对*敏*感*词*流量表进行了更多查询。
因此,在提取*敏*感*词*流量表时,在上述资产负债表操作的基础上,增加了删除最下面一行的步骤,其他步骤同理(如需使用*敏*感*词*补充信息,可不处理把它分开,你只需要获取一个资产负债表就可以了)。
2.创建自定义函数
在 PowerBI 中,每一步操作都会被自动记录下来。数据源更新后,刷新可以自动完成所有操作步骤。
进一步,这个查询也可以被函数化并应用到其他类似的查询,这些查询使用了PowerQuery的自定义函数(如果你不知道自定义函数是什么,你可以看看:Knowing Power Query's custom function)。
并不是所有的自定义函数都需要一点点从头开始编写 M 代码,有更简单的方法。
步骤 1 完成后,右键单击查询名称,然后单击“创建函数”。
输入函数名称,这里我根据报表类型定义函数为资产负债表。
然后选择这个自定义函数,点击进入高级编辑器,将前面几行代码调整为下图所示内容:
就是修改获取数据的URL,将URL中的报表类型、公司代码、年份分别作为type、code、year,将这三个变量作为自定义函数的三个参数。
然后构建这个自定义函数,
在该窗口中,可以输入任意三个有效参数,提取某上市公司某年某年的报表。
但是创建自定义函数的目的是为了批量获取数据,所以在这个窗口不需要操作。
同理,为*敏*感*词*流量表生成一个自定义函数,命名为 cashflow。
3.构建参数列表
对于这三个参数,我们需要构造这三个参数的笛卡尔积,得到各公司2010-2019年的三大报表数据。
为了方便后期的修改和维护,我们先建立三个单独的参数表。
在PowerQuery编辑器中,直接点击输入数据,输入要分析的公司名称和股票代码:
生成公司名称表。同理,生成年表和报表类型表。
接下来要做的是生成这三个表的笛卡尔积,即公司代码、年份和报告类型的任意组合。
在 PowerQuery 中,生成笛卡尔积就像向三个表中的每一个(例如 1)添加一列,然后合并查询一样简单。
首先合并查询报表类型和年份:
得到的结果如下:
这是报表类型和年份的任意组合,然后继续将此表与公司名称表合并,得到公司代码、年份和报表类型的任意组合表。
4、调用自定义函数
在第3步生成的表的基础上,添加自定义列,
这个M代码表示如果报表类型是CashFlow(*敏*感*词*流量表),则调用自定义函数:cashflow,否则调用资产负债表,其参数相同(如果只有一个自定义函数,则无需使用IF用于判断。,直接调用即可)。
然后我抓了这五家公司10年的三大报告数据:
另外,批量抓取的报表数据已经是我们需要的一维表格数据了,因为第一步收录了二维转一维的步骤,后面调用自定义函数的时候会自动做相同的。*敏*感*词*。
当然,你也可以用这种方法一次抓取几百家公司的数据,但是速度会很慢,所以建议只抓取你需要的公司和最近一年的数据。
至此,三大表的数据抓取已经完成,主要是使用PowerQuery的界面操作和一些简单的代码修改。即使没有基础,也可以按照以上步骤快速完成。
在这个财务分析示例中,有一个页面,其中收录从网络上抓取的公司简介和公司信息:
数据来自以下三个网页:
公司公告
公司简介
历史行情
这些数据的抓取和上面的财报数据抓取步骤完全一样,只是更简单一些,因为只有一个参数:公司代码,大家可以自己练习。
通过上面的介绍,你应该可以很方便的从网页中抓取财报数据了。当需要其他相关数据时,可以在网上搜索资源,然后批量抓取。
如开头所说,如果你要做的是分析贵公司的内部财务报告,你可以忽略本文中捕获数据的步骤,直接导入现成的财务报告。但是,为了后续分析的需要,建议还是将报表数据组织成一维的表结构。
数据整理上传后,就可以进行下一步的数据建模了。
成为 PowerBI Planet 会员,获取财务报告分析模板