抓取网页数据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 会员,获取财务报告分析模板

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线