有时我们需要进入网站站中抓取一些数据,但会遇到数据出现分页显示的情况,查看比较都没有那么方便。如果一页一页的提取会显得比较麻烦。别急,我们可以使用Excel中的Power Query的功能将这些出在网站中不同页面的数据抓取到一张表中。便于你在后期的查看,查询,比较分析等操作。
下面我们来看看如何实现这一目的,操作中无需要编程知识。
首先,确定你需要抓取的网站。下面我们以抓取中国银行的外汇牌价作为例子。看如何操作。
首先,打开Excel程序新建一个表格。将菜单切换至“数据”,点击“新建查询”-“从其他源”-“自网站”
此时打开了一个“从Web"的界面。在这里需要从网站上去观察网址点击每一分页的网址变化情况。下面的案例,网页的变化主要是由index_1后面的数字变化和改变数据的分页浏览。由于后面还跟有.html的后缀。需要进行一些设定
好了,确定这个规律后。我们将该界面中的基本点选改为点选”高级“。将网址复制到URL部分的下面,稍有些不同的是,需要将网址中的一部分内容作为部件。
将不变化的部分index_前的一大段网址先做为"URL部分输入",将1和.html各作为一个部件输入。这里分成两个部件主要是需要将数字部分作为一个变量。从"URL预览“中我们就能看到表示出的完整地址。就是我们需要数据的第一页的地址。
在let的上方加入下面的语句,定义一个变量n,类型为number,作为一个table
(n as number) as table=>
接下来修改下作为变量的部分,就是上面部件为1的部分。因在网页地址中为文本类型,因此使用Text函数进行格式的转换:
&Text.From(n)&
点击完成。
接下来我们就可以来调用自定义函数。菜单切换至“添加列”选项卡,点击“调用自定义函数”。在调用自定义函数的界面中,在功能查询下面选择“table0”,n参数选择“Column1”
完成上面的自定义函数调用设置后点击“确定”
可以看到我们设置的1到9页的数据全部展现出来,并且在最前一列中显示出展示的数据在那一个页码中。
接下来,将菜单切换至“主页”选项卡,并点击“关闭并上载至……”