pagesize属性每页显示无穷数据_Power Query 抓取东方财富龙虎榜数据

龙虎榜数据其实是很容易抓取的,首先我们要找到正确的数据页面:

47ea486350baa1f325dea08088dccbcc.png

找到这个页面,就可以开始网站分析了。

网站分析

在谷歌浏览器中打开页面后,开启“检查”,然后下面图片中的标签栏我们每个都按一下:

3d171cec87af32125e2962625acc2ee2.png

然后在filter中输入pagesize,筛选出这些页面,我这个多按了几次,正常应该是八个,每个标签对应一行:

078b749c95313956bdd0bfd7f807f8e2.png

我们查看每个页面的真实网址发现,这个位置的单词对应着我们要查询的标签,也就是有八个单词,分别对应了八个标签:

7337a4983bcb2d74442fcbed04a74691.png

然后就是常规的一些变量:

  • pagesize:每页显示多少条
  • page:页码
  • startdate:开始日期
  • enddate:结束日期

通过上面的分析,我们可以设想写出一个函数,通过改变关键字,页码,日期等参数,来查询对应的龙虎榜数据。

其实,这也算一个API调用,我们再来看数据预览:

bb99d1ad57de286eb730b8d477489699.png

下面这一行才是真正数据调用的网址,我试着抓取了一下:

b0ff8b42c4182b36308bdf0d10d63c49.png

展开后是这样的数据结构,用“|”分割的一个数据列表,没有表头,不是我们喜欢的数据样式。

我们还是看看能不能抓取带有表头的数据表,毕竟有好多列,一个一个的去添加表头,不是我们这种懒人愿意干的事情。

试抓

我们用下面这个网址来试抓:

dea0cf7032be24701627cab50cb8c22b.png

展开后得到一个表格:

5008be32cdca8502057bb7afeb3ca902.png

根据这个过程,我们原来的想法要改变一下,因为不同的标签对应的表格的列数不同,所以我们不可能用一个通用的函数来抓取全部八种表格,其实是七种,最后一个是营业部查询。我们也只是需要定义7个函数来分别抓取就可以了。

当然,如果硬是要一个函数实现也不是不可能,只不过要写七个分支,来分别处理七种表格。

定义函数

我们还是采取分别定义函数的方式,这里我就举一个例子,定义抓取龙虎榜详情的一个函数:

df20fc38956dbfa9b5c983864a56eaa2.png

我日添加了三个参数,如果需要你可以把页码也添加进来。

如果你要定义其他标签对应的函数,需要复制标签对应的网址,然后修改参数。

抓取

然后我们做一个测试,抓取2020-10-1到2020-10-27,1000行的数据:

17a0a2ac8c0a98231bedd7ec1b0d8bec.png

需要稍等几秒钟,就可以了。

如果是数据有很多页,可以把页码也添加进来,然后用页码来抓取,我修改一下函数:

fb1aafe555fc9830c51b7d5c1843f67b.png

其实2020-10-1到2020-10-27一共只有600多行的数据,那么我们换一种方式,每页100,抓取7页:

6e0f54b2d5d77baedb9a053d9feeea2f.png

展开得到665行数据:

febba0d415c4708d569d305b7ec726b7.png

最后提醒大家一下,我上面两个函数的是为了方便大家看,为了截图才做的断行,实际是不能有断行回车的,如果添加了回车符,查询就会出错。

266694bf359f6a4da75269088658f0ea.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值