excel抓取网页动态数据(本文如下:找到目标网页打开阳光高考网站(图))
优采云 发布时间: 2022-03-06 12:26excel抓取网页动态数据(本文如下:找到目标网页打开阳光高考网站(图))
我们日常使用PowerBI数据获取单个网页数据非常简单,但是批量获取网页数据相对麻烦。这里我们可以使用PowerBI的Power Query组件批量获取多个网页的数据。同样,也可以使用高版本Excel自带的Power Query来获取。
本文以阳光高考网站为例,获取2019年全国普通高等学校名单。
具体操作步骤如下:
(一)找到登陆页面
打开阳光高考网站,找到“2019年全国普通高等学校名单”网页。
点击打开单个网页查看,如下:
(二)分析URL结构
这里选择前三个省份网址
北京:
天津:
河北:
可以看出只有URL中最后一个数字是变量,这里我们把它当作页面ID
(三)采集第一页数据
(北京的页面ID从“2”开始)
打开PowerBI Desktop,通过“获取数据”中的“Web”选项获取数据,在“Web”界面中选择“基本”选项卡即可。
这里我们在基本选项卡中输入目标网址
(北京)
获取数据源信息如下,这里只有第一个表是我们要的,勾选,然后点击右下角转换数据进行数据处理。
入口页面如下:
这样我们就简单地采集到第一页数据。然后整理这个页面的数据,删除无用的信息,添加字段名。完成后,后续采集其他页面的数据结构与第一页完成后的数据结构相同,采集的数据可以直接使用。
如果要大量抓取网页数据,为了节省时间,可以不用对第一页的数据进行排序,直接进行下一步。
我们不会在这里处理它。
(四)根据页码参数设置自定义功能
这是最重要的一步
在当前数据的编辑器窗口中,打开【高级编辑器】,输入:
(p作为数字)作为表=>
并且在链接中,将网页的页码,也就是上面提到的“1、2”等数字修改为“&(Number.ToText(p))&”。
改了之后就变成了:
点击“完成”,刚才第一页数据的查询窗口变成了自定义函数的输入参数窗口,表格也变成了函数的样式。自定义函数完成,p是函数的变量,用来控制页码,输入一个数字,比如3,会抓取第三页的数据。
输入参数一次只能抓取一个网页。批量爬取需要执行以下步骤。
(五)批量调用自定义函数
首先,使用一个空查询来创建一个数字序列。在这里,因为我们要从第 2 页到第 32 页获取数据,所以我们创建一个从 2 到 32 的序列并在空查询中输入:
={2..32}
回车生成一个从1到100的序列,然后变成表格。
然后调用自定义函数
单击“确定”开始批量抓取网页。如果采集页数较多,不建议在获取第一个网页后立即进行数据排序,否则可能导致采集时间过长。
这里我们展开表格,里面全是31页的数据。
那么这里我们看看后续的数据排序和可视化。
备注1:如果采集的网页数据不断更新,完成以上步骤后,在PQ中点击刷新,即可随时一键提取网站的实时数据,非常方便。.
注2:以上主要使用PowerBI中的Power Query功能,可以在可以使用PQ功能的Excel中进行同样的操作。
备注3:需要注意的是,并不是所有的网页数据都可以通过上述方法获得。在使用PowerBI批量捕获某个网站数据之前,先尝试一个采集页面。如果你可以采集 到达,然后使用上面的步骤。如果 采集 不可用,则需要考虑使用 Python 等爬虫处理。
本文参考:PowerQuery批量抓取网页实战:分分钟抓取智联招聘数百页作业信息