当前位置:首页 > 观点

使用EXCEL中的Power Query一次抓取网站中的多页数据

2020-02-27

有时我们需要进入网站站中抓取一些数据,但会遇到数据出现分页显示的情况,查看比较都没有那么方便。如果一页一页的提取会显得比较麻烦。别急,我们可以使用Excel中的Power Query的功能将这些出在网站中不同页面的数据抓取到一张表中。便于你在后期的查看,查询,比较分析等操作。

下面我们来看看如何实现这一目的,操作中无需要编程知识。

首先,确定你需要抓取的网站。下面我们以抓取中国银行的外汇牌价作为例子。看如何操作。

首先,打开Excel程序新建一个表格。将菜单切换至“数据”,点击“新建查询”-“从其他源”-“自网站”

此时打开了一个“从Web"的界面。在这里需要从网站上去观察网址点击每一分页的网址变化情况。下面的案例,网页的变化主要是由index_1后面的数字变化和改变数据的分页浏览。由于后面还跟有.html的后缀。需要进行一些设定

好了,确定这个规律后。我们将该界面中的基本点选改为点选”高级“。将网址复制到URL部分的下面,稍有些不同的是,需要将网址中的一部分内容作为部件。

将不变化的部分index_前的一大段网址先做为"URL部分输入",将1和.html各作为一个部件输入。这里分成两个部件主要是需要将数字部分作为一个变量。从"URL预览“中我们就能看到表示出的完整地址。就是我们需要数据的第一页的地址。

点击确定进入到导航器的界面当中。选择左手边的Table0,在右手边的“表视图”中可以看到网站第一页的数据。这就是我们需要的数据部分。然后点击下方的“转换数据”开启转到了“Power Query编辑器”界面,在这里需要做一个手动的加工。点击开启“高级编辑器”,在高级编辑器的界面中可以看到有一些生成的代码。在这里需要进行代码的一些变更。

在let的上方加入下面的语句,定义一个变量n,类型为number,作为一个table

(n as number) as table=>

接下来修改下作为变量的部分,就是上面部件为1的部分。因在网页地址中为文本类型,因此使用Text函数进行格式的转换:

&Text.From(n)&

点击完成。

可以看到n变量参数的一个调用页面,测试一下,输入参数2,点击“调用”就可调用查询到网站页面2的数据。可以根据调用的参数不同,调用不同页面中的数据。下面看看如何调用你需要的不同页面的数据。可以先把上面调用测试的查询删除。右键点击左边空白处,根据下图中的菜单,选择新建一个“空查询”在上方fx的后面输入:={1..9}回车,建立一个1到9的列表接下来需要将它转换到表,点击上方的“转换”,然后点击“列表”。在弹出的“到表”界面中选择默认即可。点击“确定。

接下来我们就可以来调用自定义函数。菜单切换至“添加列”选项卡,点击“调用自定义函数”。在调用自定义函数的界面中,在功能查询下面选择“table0”,n参数选择“Column1”

完成上面的自定义函数调用设置后点击“确定”

接下来需要将数据展开,点击table0后面的展开图标,进行数据展开选择需要展开的列,点击“确定”

可以看到我们设置的1到9页的数据全部展现出来,并且在最前一列中显示出展示的数据在那一个页码中。

接下来,将菜单切换至“主页”选项卡,并点击“关闭并上载至……”

将需要上载到的数据加载到一个表中。点击“加载”。加载数据需要一段时间,主要跟网速与抓取数据的多少有关。请耐心等待。可以看到网站上1到9页数据都导入到了一个Excel的工作表中了。像这个数据在网站中会定时更新,如果你有需要也可以在表格中设置数据的更新频率。从“设计”的菜单中选择打开“属性”,在连接属性中进行刷新频率的勾选和设置。

免费获取报价

  • 29923329

  • 杭州市丰庆路498号北软智慧科创大厦203

  • 0571-85815193

  • pady@1t2.cn

网站地图 版权所有 © 2008-2021 杭州派迪科技有限公司  Copyright © 2008-2020  www.hzpady.com  All Rights Reserved    浙ICP备14029905号-1     公安备案:33010802008411    软著登字第3457658号