实时抓取网页数据(《PowerBI/Query爬虫:抓取多个城市历史天气数据》 )
优采云 发布时间: 2021-12-28 10:23实时抓取网页数据(《PowerBI/Query爬虫:抓取多个城市历史天气数据》
)
在《Power BI/Query Crawler:在多个城市抓取历史天气数据》一文中,我分享了如何抓取历史天气数据。本文解释了如何捕捉实时天气和天气预报数据。核心方法是:通过Power BI调用高德地图天气API提取数据,使用SVG图片制作各种天气图标,最后进行地图或表格进行天气展示。
数据采集部分适用于Power BI和Excel,动态图表部分适用于Power BI。最后,可以呈现以下效果。
您可以将鼠标指向地图上的任何城市以显示暂停的天气:
可以直接在地图上显示:
它也可以以表格样式显示:
1.天气数据提取
在高德地图开放平台(/)免费申请WEB服务API,获取KEY(网络有相应教程)。
不同的城市有相应的代码。代码是识别城市的唯一依据。代码列表可以在/api/webservice/download 下载。
部分编码
将城市代码表导入 Power BI 并添加以下自定义列:
Json.Document(
Web.Contents(
"https://restapi.amap.com/v3/weather/weatherInfo?&city="&[adcode]&"&output=JSON&key=你申请的KEY")
)
这个公式的意思是通过adcode列调用实时天气数据,返回JSON格式。如果您需要的不是实时天气,而是未来几天的预报信息,则需要在代码中添加一个额外的参数“extensions”,如下所示:
Json.Document(
Web.Contents(
"https://restapi.amap.com/v3/weather/weatherInfo?&city="&[adcode]&"&output=JSON&key=你申请的KEY&extensions=all")
)
更多参数详情请参考/api/webservice/guide/api/weatherinfo/
展开数据后,可以得到实时天气:
实时天气官方每小时更新多次,预报天气每天更新3次,分别在18:00左右。由于天气数据的特殊性和数据更新的连续性,无法确定准确的更新时间。具体更新时间以接口返回数据的reporttime字段为准。
2.SVG 天气图标导入
主要天气条件有雪、雷雨、雨、阴、阴、晴等。Power BI支持SVG图片显示。在网上找到对应的天气SVG图片,将SVG代码保存到Excel中,导入Power BI。
天气SVG表
Weather SVG 引入城市代码表
SVG 代码使用以下字段连接并标记为“图像 URL”格式:
"data:image/svg+xml;utf8,"&RELATED('天气SVG'[SVG])
主要天气条件的SVG代码可以在/code2431找到,“晴天”的代码如下:
3.图表制作
对于地图上浮动提醒的显示方式,首先单独创建一个提醒页面,使用卡片图表、表格等图表样式进行如下设计(这里页面命名为“天气”)。
打开该页面的“工具提示”,将页面大小类型设置为“工具提示”:
最后打开地图页面,选择地图,在“工具提示”设置中选择上面设计的提示页面。这样就完成了浮动天气提醒功能的设置。
对于直接在地图上显示的方法,将所需字段放置在 Location 中并向下钻取到底部。
对于表格显示,只需拖放字段,如下图所示。