网页表格抓取(PowerBI汉字的地名来作图,经常出现的精度要求并不高)

优采云 发布时间: 2021-12-25 13:19

  网页表格抓取(PowerBI汉字的地名来作图,经常出现的精度要求并不高)

  在Power BI Desktop做数据地图的时候,因为BING地图中国数据不是那么准确,如果只用汉字中的地名做地图,经常会出现莫名其妙的情况。明明是国内地址,会出国。所以最准确的方法是通过经纬度定位。

  

  互联网上有各种各样的数据。搜索后,有很多网站提供经纬度查询。我们的映射不需要高纬度和经度精度。我找到了一个可以查询全国所有省市县经纬度的网站:

  

  找上海,随便找个区查一下:果然

  

  检查网页上的连接地址。它的结构非常简单,应该可以直接抓取:

  

  具有这种结构的网页通常通过指向子页面的链接来查找内容。它不是现成的数据表。页面上只有三个有用的数据:地名、经度和纬度。所以我们需要用文本打开,然后过滤出我们需要的内容,然后进行整理。

  但是我们无法手动一个一个地添加这么多子页面。如果您从任何页面进入,都会有到其他区域的链接,我们会通过此链接自动添加它们。

  第一部分获取所有链接地址

  首先,修改此源的设置。注意一定要设置GB2312编码,否则汉字乱码。

  

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

  

  

  接下来是提取内容:各区名和连接地址:

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

  

  获取连接地址的方法也是一样的,但是可以直接获取,不用跳过:

  

  第二部分爬行

  自定义列:仍然可以使用Web.Contents根据链接地址进行查询。

  

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

  

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

  

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

  

  Power Query在合并文件的时候会像我一样自动生成一个自定义函数,并引用这个自定义函数来合并所有的页面。为方便后续操作,我们在右边的步骤中退一步,查找并删除其他的。列,在这里您可以检索自动删除的区域的名称。如果您不检索它们,则稍后需要再次检索它们。

  

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

  

  第三部分整理资料

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

  

  我们要过滤掉这19行:通过观察,只要同时收录

这两个关键字的行就是我们需要的内容,世界一下子就刷新了。

  

  需要再次使用Extraction>Separator之间的文本,这次不需要转换文本,使用添加列中的提取保存复制列。首先提取经度:

  

  然后提取纬度:

  

  最后,修改以下名称和数据类型,大功告成:

  

  我们在每个区模拟一列销售数据,然后使用每个区的名称为索引列建立表关系:

  

  您可以在BI中制作图片:

  

  最好将本地从网络捕获的数据保存为存档。无需每次都在网络上刷新。可以直接在 Power BI Desktop 的表格模式下复制表格,然后粘贴到 Excel 中。向上。

  如果在 Excel 中从 Power Query 中抓取数据,则更简单,只需将其加载到表中并复制即可。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线