不少小伙伴对昨天奥运奖牌榜的数据获取与处理感兴趣,今天我们就以此为例学习一下如何使用 Power Query 读取 Web 数据源。
使用 Power Query 读取 Web 数据源,新建源时选择 Web 即可。
昨天文章里的截图选择的是维基百科的奥运奖牌榜,但是访问需要一些其他条件,这里就以国内的百度体育奥运奖牌榜为例吧。网址:
https://tiyu.baidu.com/al/major/home?page=home&match=2024%E5%B9%B4%E5%B7%B4%E9%BB%8E%E5%A5%A5%E8%BF%90%E4%BC%9A&tab=%E5%A5%96%E7%89%8C%E6%A6%9C
然后 Power Query 会自动为我们生成一个预览表格。
选择建议的表格,点击确定,这样就得到了一个前 20 名的奖牌榜。从左到右依次为排名列、国家/地区名称列、金牌列、银牌列、铜牌列和总计列。数据很干净,我们只需要重命名和转换数据类型就好了。
这里我们使用到的函数是 Web.BrowserContents,这个函数返回 Web 浏览器查看的指定的 url 的 HTML。
得到指定 URL 的 HTML 文本之后,会使用另一个函数 Html.Table。它的作用是返回一个表,其中包含针对所提供的 html 运行指定 CSS 选择器的结果。
这两个步骤一般是在我们输入 URL 之后 Power Query 根据我们选择的表格自动生成的,大家不用担心不会 HTML 相关知识。
如果仅仅使用这两步满足不了你的需求,那就需要用到 HTML 的知识了,这些一般是要交给 IT 来完成的。
虽然我们上方的表格数据很干净,但是我们发现它只有前 20 名的数据,这跟我们选择的表格有关。想解决这个问题,我们就需要具备一些 HTML 知识了,于是我又为大家找到了另一个 URL,奥林匹克官方网站,URL 地址为:
https://olympics.com/zh/paris-2024/medals
新建一个 Web 源,输入奥林匹克网站的地址试一下。
看来只能再寻找新的数据源了,使用新的数据源试一下,网址:
https://www.360kuai.com/pc/event/zhuanti?zid=1962&tab=awards
输入 URL,选择建议的表格。生成的建议的表格表 2 已经为我们把所有数据都统计好了,连列名都不需要更改了。
我们的排名列应该为整数类型,而不是文本类型,排名列是文本类型是因为这些国家/地区的排名为 - ,这些行对应的奖牌数为 0。
这一步有两个选择,你可以选择将这些行筛选掉,或者将 - 替换为 null,也可以选择将 - 替换为具体的数字,这里的数字应为 74。
我们将 - 筛选掉,点击排名列的下拉箭头,取消选中 -。
筛选行之后,选中排名列,将数据类型更改为整数类型。
感兴趣的小伙伴赶快去试试吧,让我们一起为中国奥运健儿们加油!
如果你对本文的 Power BI 源文件感兴趣可以私信老师了解领取方式。