Power Query尝试抓取东方财富实时资金流向数据

Power Query网络抓取都有三个步骤:

  • 网站分析
  • 定义抓取函数
  • 抓取

网站分析

网站分析过程,就是找出网址变化规律,数据结构的过程,通常情况下,我们抓取多页的数据时,有两种情况:

  • 页码结构:规律的页码变化,数字页码
  • 目录结构:源码中是url列表的形式

当然也有两种结构混合的情况,既有页码,也有目录。

数据的情况基本上有三种:

  • 文本:从网页源码中找到我们需要的文本数据
  • Table:从网页结构中直接找到需要的数据表格
  • JSON:返回的是查询结果,一个JSON数据集

无论哪种情况都需要从谷歌浏览器的检查中找到答案。

这个网站的数据,是每页50条,一共72页:这是一个标准的页码结构

PowerQuery尝试抓取东方财富实时资金流向数据

我们截图的是第二页的内容:

PowerQuery尝试抓取东方财富实时资金流向数据

通过谷歌浏览器来检查真正的网址:

PowerQuery尝试抓取东方财富实时资金流向数据

中间有页码2,应该是可以抓取的类型,多观察几页,如果几页的内容只有这个页码变化,那么这个数据抓取就没什么问题了:这是第3页

PowerQuery尝试抓取东方财富实时资金流向数据

我们还要观察一下,返回的数据:这是一个标准的JSON数据结构

PowerQuery尝试抓取东方财富实时资金流向数据

应该是JSON格式的数据,对于Power Query来说,数据的开头有多出来的字符:

PowerQuery尝试抓取东方财富实时资金流向数据

Power Query的JSON解析只认{}包裹的数据,所以我们在抓取的时候就要清理好。

定义抓取函数

定义抓取函数的过程通常两步:

  • 实际抓取:实现一次单个页面抓取过程,尽可能的通用化操作,避免后期出错
  • 定义函数:通过实际抓取创建函数,通常要修改参数,参数一般是页码或者是URL

一、实际抓取:

1、复制URL:从检查结果中复制URL

PowerQuery尝试抓取东方财富实时资金流向数据

2、从web获取数据:

PowerQuery尝试抓取东方财富实时资金流向数据

粘贴我们复制的URL,开始操作

PowerQuery尝试抓取东方财富实时资金流向数据

这时候就可以开始数据整理,用等号分割,就直接把JSON数据独立出来,后面的数据类型检测选整个数据集。

3、JSON解析:

PowerQuery尝试抓取东方财富实时资金流向数据

如我们预期,直接得到解析的结果:

PowerQuery尝试抓取东方财富实时资金流向数据

4、展开数据并整理:

PowerQuery尝试抓取东方财富实时资金流向数据

这个过程都很简单,要注意的是替换数据中的短划线,如果不替换在数据类型转换时就会出错,还有就是列的重命名,这个是有点麻烦,不过相对与几千行的数据来说,几列的名称手工输入也就不算啥了。

5、定义函数:

在这个查询的基础上右键创建函数:

PowerQuery尝试抓取东方财富实时资金流向数据

输入一个名称继续,高级编辑器中添加页码作为参数:

PowerQuery尝试抓取东方财富实时资金流向数据

添加后的结果:

PowerQuery尝试抓取东方财富实时资金流向数据

抓取

1、准备页码列表:

创建一个页码列表,并转换成文本格式

PowerQuery尝试抓取东方财富实时资金流向数据

2、引用函数抓取数据:

PowerQuery尝试抓取东方财富实时资金流向数据

3、展开数据并整理:

PowerQuery尝试抓取东方财富实时资金流向数据

4、加载数据:

PowerQuery尝试抓取东方财富实时资金流向数据

这样整个数据抓取的过程就结束了:

我们简单的做个图表看看:

PowerQuery尝试抓取东方财富实时资金流向数据