从已发布的 Power BI 视觉对象中抓取数据

Posted

技术标签:

【中文标题】从已发布的 Power BI 视觉对象中抓取数据【英文标题】:Data scraping from published Power BI visual 【发布时间】:2019-02-04 09:04:06 【问题描述】:

如何以任何编程方式将数据从已发布的特定 Power BI 视觉对象导入另一个 PBI 报表或 SQL Server 表,或者只是将其废弃到本地驱动器?我想通过单击right upper corner of published PBI visual>export data>Save as中的三个点...到本地驱动器来达到相同的效果。

这让我获得了我需要的整个数据表,而无需查看其他人如何生成视觉效果的复杂性(即在未知键上连接许多表)。无论利弊如何,我想从 PBI 视觉的外部报告中获取数据,而不是从 Power BI datasets 或任何其他外部报告的初级来源。

理想情况下,我想在我的 Power BI 报表中插入外部报表的视觉对象作为源。如果这不可能,是否有任何方法使用 R 打开 PBI 外部报告,并将数据从特定视觉导出到 R data.frame?如果没有,也许它可以用 Python 或任何其他为数据抓取而设计的程序来完成?

【问题讨论】:

我猜没有一种干净的方法可以做到这一点,因为视觉对象中的值没有存储在 pbix 文件中。您必须重新创建过滤器上下文,否则以编程方式抓取数据。 微软似乎在做这类事情的能力方面取得了一些进展。请参阅September 2018 Feature Summary。 @VishalShukla 我们只讨论已发布的报告,因此您的建议不适用。 目标:从已发布的 BI 报告中废弃数据。我的建议是,您可以使用 selenium 和 python 组合来以静默模式模拟浏览器操作并收集数据。 (在本地临时文件夹中导出数据并将其推送到您的 SQL 服务器以创建另一个报告)可能有比 selenium 更好的库,它还可以以静默方式模拟浏览器操作。目前,我对此一无所知。我确信上述解决方案是可以实现的。 嗯,使用 selenium + headless chrome + beautifulsoup 可以实现,但使用一些标准 API 可能更容易?也许这会有所帮助:docs.microsoft.com/en-us/rest/api/power-bidocs.microsoft.com/en-us/rest/api/power-bi/reports/exportreport 【参考方案1】:

我会尝试使用 javascript 库中的 exportData 方法来嵌入 Power BI:

https://github.com/microsoft/PowerBI-JavaScript/wiki/Export-Data

您的屏幕截图表明您正在通过 Power BI Web 服务 app.powerbi.com 访问报表。使用该门户打开报告后,菜单选项共享/嵌入报告/网站或门户将为您提供入门所需的安全令牌。

【讨论】:

我不懂JS。我应该如何开始利用您的提示? 它们提供了一个示例游乐场,您可以在其中生成代码并尝试方法。但实际上,您需要 JS 开发人员的帮助。 microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html 他们确实提供了 python (flask) 示例,但不确定它是否适合您的部署场景:github.com/microsoft/PowerBI-Developer-Samples

以上是关于从已发布的 Power BI 视觉对象中抓取数据的主要内容,如果未能解决你的问题,请参考以下文章

Power BI:需要根据切片器选择向表格视觉对象添加列

Power BI Chord 视觉对象:链接具有相同列名的表

Power BI学习

从使用 Power BI 的网站抓取数据 - 从网站上的 Power BI 检索数据

Power BI - R 脚本视觉 - Apriori

使用 Python 在 Power BI 中过滤 Python Script Visual 中的数据