春节前,我发表了文章《最全391个官网Power BI【自定义图表对象】,不只是案例一次性打包下载!无需账号免登录!| PBI重要资源》,很多小伙伴问,里面的下载链接是怎么抓取下来的?
其实,这个内容的抓取很简单,因为微软这网页的设计有个特点:将当前页所有visual对象的完整信息打包成一段json代码,存在其中一行(通过“Google”浏览器的“检查”功能可查看,约在代码的第133行):
因此,从每页中提取这段网页源代码,然后再进行整理即可。
下面,对单页内容提取及整理的过程进行说明,后面会直接给出参数化以及全部页面提取的案例文件供大家参考和使用。
Step-01 新建空查询,直接读取网页源代码
直接通过Lines.FromBinary、Web.Contents两个函数读取网页(第1页)的源代码:
= Lines.FromBinary(
Web.Contents("https://appsource.microsoft.com/zh-cn/marketplace/apps?product=power-platform%3Bpower-bi-visuals&page=1"),
null, null, 65001)
Step-02 将网页代码转换到表,方便后续数据筛选
Step-03 筛选出自定义对象及其相关链接信息所在的行
行的开头是一个专属的标签“ initTelemetry(); ”,所以,直接筛选开头为“ initTelemetry(); ”的内容:
Step-04 提取分隔符的文本
经过观察,发现视觉对象的信息在dataList和dataMap之间
Step-05 通过JSON功能进行数据解释
Step-06 提取经上一步JSON解析得到的内容List,扩展到新行
继续展开得到的记录清单,按需要选择相应的字段:
最终结果如下图所示:
其中,有3列:downloadLink、downloadSampleLink、IconURL,都直接抓取到了:
有了这3个链接,就可以直接下载相应的视觉对象、示例文件以及图标到本地了。
其中还有少量额外信息提取,以及如何参数化提取所有页面的操作,有兴趣的朋友可以参考(或直接使用)本文章配套案例文件:
https://share.weiyun.com/5zp1rjFQ
本文分享自 Excel到PowerBI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!