Power Query 抓取东方财富龙虎榜数据

龙虎榜数据其实是很容易抓取的 , 首先我们要找到正确的数据页面:
Power Query 抓取东方财富龙虎榜数据文章插图
找到这个页面 , 就可以开始网站分析了 。
网站分析在谷歌浏览器中打开页面后 , 开启“检查” , 然后下面图片中的标签栏我们每个都按一下:
Power Query 抓取东方财富龙虎榜数据文章插图
然后在filter中输入pagesize , 筛选出这些页面 , 我这个多按了几次 , 正常应该是八个 , 每个标签对应一行:
Power Query 抓取东方财富龙虎榜数据文章插图
我们查看每个页面的真实网址发现 , 这个位置的单词对应着我们要查询的标签 , 也就是有八个单词 , 分别对应了八个标签:
Power Query 抓取东方财富龙虎榜数据文章插图
然后就是常规的一些变量:

  • pagesize:每页显示多少条
  • page:页码
  • startdate:开始日期
  • enddate:结束日期
通过上面的分析 , 我们可以设想写出一个函数 , 通过改变关键字 , 页码 , 日期等参数 , 来查询对应的龙虎榜数据 。
其实 , 这也算一个API调用 , 我们再来看数据预览:
Power Query 抓取东方财富龙虎榜数据文章插图
下面这一行才是真正数据调用的网址 , 我试着抓取了一下:
Power Query 抓取东方财富龙虎榜数据文章插图
展开后是这样的数据结构 , 用“|”分割的一个数据列表 , 没有表头 , 不是我们喜欢的数据样式 。
我们还是看看能不能抓取带有表头的数据表 , 毕竟有好多列 , 一个一个的去添加表头 , 不是我们这种懒人愿意干的事情 。
试抓我们用下面这个网址来试抓:
Power Query 抓取东方财富龙虎榜数据文章插图
展开后得到一个表格:
Power Query 抓取东方财富龙虎榜数据文章插图
根据这个过程 , 我们原来的想法要改变一下 , 因为不同的标签对应的表格的列数不同 , 所以我们不可能用一个通用的函数来抓取全部八种表格 , 其实是七种 , 最后一个是营业部查询 。 我们也只是需要定义7个函数来分别抓取就可以了 。
当然 , 如果硬是要一个函数实现也不是不可能 , 只不过要写七个分支 , 来分别处理七种表格 。
定义函数我们还是采取分别定义函数的方式 , 这里我就举一个例子 , 定义抓取龙虎榜详情的一个函数:
Power Query 抓取东方财富龙虎榜数据文章插图
我日添加了三个参数 , 如果需要你可以把页码也添加进来 。
如果你要定义其他标签对应的函数 , 需要复制标签对应的网址 , 然后修改参数 。
抓取然后我们做一个测试 , 抓取2020-10-1到2020-10-27 , 1000行的数据:
Power Query 抓取东方财富龙虎榜数据文章插图
需要稍等几秒钟 , 就可以了 。
如果是数据有很多页 , 可以把页码也添加进来 , 然后用页码来抓取 , 我修改一下函数:
Power Query 抓取东方财富龙虎榜数据文章插图
其实2020-10-1到2020-10-27一共只有600多行的数据 , 那么我们换一种方式 , 每页100 , 抓取7页:
Power Query 抓取东方财富龙虎榜数据文章插图
展开得到665行数据:
Power Query 抓取东方财富龙虎榜数据文章插图
【Power Query 抓取东方财富龙虎榜数据】最后提醒大家一下 , 我上面两个函数的是为了方便大家看 , 为了截图才做的断行 , 实际是不能有断行回车的 , 如果添加了回车符 , 查询就会出错 。
Power Query 抓取东方财富龙虎榜数据文章插图