经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图

在Power BI Desktop中做数据地图时,由于BING地图中国数据不是那么准确,如果仅以汉字的地名来作图,经常出现莫名奇妙的情况,明明是国内的地址,会跑到国外去。所以最准确的办法就是通过经纬度来定位。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(1)

现在的网络上什么数据都有,搜索了一下,有很多网站提供经纬度查询,我们这种作图对经纬度的精度要求并不高,找了一个可以查询全国各省市县区级经纬度的网站:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(2)

找到上海市,随便找一个区查一下:果然可以

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(3)

检查一下网页上的连接地址,很简单的结构,应该直接就可以抓取了:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(4)

这种结构的网页,通常是通过子网页的连接来查找内容的,不是那种现成的数据表,一个页面上对我们有用的数据就只有三个:地名,经度,纬度。所以需要用文本的方式打开,然后筛选出来我们需要的内容,然后整理一下就好了。

但是这么多的子网页我们不能一个一个的手工去添加,从任意一个页面进去,都有其他区的连接,我们就通过这个连接来自动添加。

第一部分 获取全部的链接地址

先来修改这个源的设置,注意一定要设置GB2312编码,否者汉字就是乱码。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(5)

保留行,109行开始,一共19行

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(6)

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(7)

接下来是提取内容:各区的名字与连接的地址:

这个提取>分隔符之间的文本,非常好用。高级设置里要跳过1个字符,大家观察一下,这个“<li>”中的“>”是第一个开始符号,我们需要的内容在第二个开始符号后,所以要跳过第一个开始符号。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(8)

获取连接地址也是同样的办法,不过不用跳过,直接就可以获取了:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(9)

第二部分 抓取

自定义列:还是用Web.Contents根据链接地址就可以查询了。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(10)

查询的结果是二进制文件,点击合并后会出来一个警告,点击编辑

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(11)

点击编辑后会出来一个对话框,这里还是要选择文本文件:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(12)

接下来就是合并文件的操作了,还是要注意选择GB2312编码:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(13)

Power Query会向我我们合并文件那样,自动生成一个自定义函数,并且引用这个自定义函数,把所有的页面合并起来,为了后续操作的简便,我们在右侧的步骤里后退一步,找到删除其他列,这里找回被自动删除的各区的名字,如果不找回来,后面要自己再提取一遍。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(14)

最后的结果是这样子的:第二部分的工作就完成了。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(15)

第三部分 整理数据

这么多的行里面,对我们有用的只有19行

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(16)

我们要筛选出来这19行:通过观察,只要同时包含这个两个关键字的行就是我们需要的内容,世界一下子就变得清爽了。

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(17)

又要用到提取>分隔符之间的文本,这回不用转换里的,用添加列里面的提取,省的复制列了。先提取的是经度:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(18)

然后是提取纬度:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(19)

最后修改一下列名,以及数据类型,就大功告成了:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(20)

我们模拟了一列各区的销售数据,然后用各区的名字为索引列建立表的关系:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(21)

就可以到BI中做图了:

经纬度地图应用 PowerBIDesktop中抓取上海市各区的经纬度制作可视化地图(22)

最好是把这个网络抓取的数据,保存到本地,作为一个存档,没有必要每次都去网络上刷新,直接在Power BI Desktop中的表格模式下,复制表格,然后粘贴到Excel中就可以了。

如果你是在Excel中的Power Query抓取的数据,你就更简单了,只要加载到表,然后复制就好了。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页