众所周知,Power BI即便是PRO账号也仅仅提供每日8次自动刷新,但对于很多业务场景而言是远远不够的。
Power BI在国内由世纪互联运营,任意刷新设置请看以下两篇文章:
如果雇一个人7d×24h每10秒刷新一次Power BI,我需要每月支付他多少钱?
如果雇一个人7d×24h每10秒刷新一次Power BI,我需要每月支付他多少钱?【2】
那国际版刷新策略是否和国内世纪互联运营的版本相同呢?
由于两个版本的Power BI服务器位置不同,所以还是有所差异的:
首先是刷新网址:
世纪互联版:
https://wabi-mc-sha-redirect.analysis.chinacloudapi.cn/powerbi/content/packages/2314354/refresh/
国际版:
https://wabi-us-north-central-c-primary-redirect.analysis.windows.net/powerbi/content/packages/334164/refresh/
能够明显看出,世纪互联版和国际版的服务器差异。相应地,在请求头host上也会有差异:
世纪互联版:'wabi-mc-sha-redirect.analysis.chinacloudapi.cn';
国际版:'wabi-us-north-central-c-primary-redirect.analysis.windows.net'
另外,世纪互联版的请求头origin和referer字段都是'https://app.powerbi.cn',而国际版都是'https://app.powerbi.com'。
其他地方完全相同。
我们做一下测试:
完整源代码请关注公众号【学谦数据运营】回复“pbi自动刷新3”获取。
同样的问题,我们在浏览器中获取的token是短时间内有效的:
从产生这个token到它expire总共是一小时,因此如果你需要在1小时内高强度重复刷新,比如1秒钟刷新一次,那么这种方式完全适合你。
如果你想要全天一直盯着数据看,又不想一小时就更换一下token,那么你就得再多学一些技能了。比如找个什么东西可以在token expire之前就获取新的token。
因为登录powerbi后一天内是不会自动登出的,所以无论任何时候你只要能获取当前浏览器的cookie,它一定是在有效期内的,也就是一定可以用来刷新报表。
那有没有自动获取浏览器cookie的工具呢?
无所不能的Python大法自然是有的:browsercookie库帮你解决。
从名字就可以看得出,browsercookie是帮助你获取浏览器cookie的:
pip install browsercookie
下载导入库之后,用法比较简单:
import browsercookieimport re
chrome_cookie = browsercookie.load()
for cookie in chrome_cookie:
if xxxxxx:
xxxxx
一般用这个库的时候还需要用到正则,导入库:
import re
自己试着匹配一下就出来了,这里就不多说了。
或者其实可以不需要查找特定的cookie,直接用全部的cookie去当做请求头也是可以识别的。
正所谓:
还是Python大法好啊。
需要注意的一点:browsercookie库只支持Firefox和Chrome浏览器,而Chrome浏览器在升级了80版本之后,极大地限制了第三方调用cookie:
所以如果想用这个功能,不要升级Chrome到最新版本,或者使用Firefox浏览器。
当然,能够获取浏览器cookie的方式不知这一种,再提供两个关键字:
webdriver
sqlite3
本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!