You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python读取采用Windows默认认证的Power BI报表URL内容

借助Windows默认认证读取Power BI报表URL内容

你当前代码使用的HTTPBasicAuthHandler仅支持HTTP Basic认证,但Windows默认采用的是NTLM或Kerberos认证机制,因此无法复用系统已有的登录状态。以下是几种可行的解决方案:

方法一:使用requests + NTLM认证(推荐)

这是最简洁稳定的方案,借助requests_ntlm库实现Windows凭证复用:

  1. 先安装依赖:
pip install requests requests_ntlm
  1. 替换后的代码:
import requests
from requests_ntlm import HttpNtlmAuth

# 读取URL并去除换行符
with open("link.txt", "r") as f:
    url = f.readline().strip()

# 自动使用当前Windows登录用户的NTLM凭证
response = requests.get(url, auth=HttpNtlmAuth('', ''))

# 检查请求是否成功,失败则抛出异常
response.raise_for_status()

# 读取并打印内容
content = response.text
print(content)

如果需要显式指定域、用户名和密码,可修改HttpNtlmAuth参数:

response = requests.get(url, auth=HttpNtlmAuth('DOMAIN\\your_username', 'your_password'))

方法二:使用urllib + NTLM认证处理器

若不想更换urllib库,可借助ntlm-auth库提供的NTLM认证处理器:

  1. 安装依赖:
pip install ntlm-auth
  1. 修改后的代码:
import urllib.request
from ntlm import HTTPNtlmAuthHandler

with open("link.txt", "r") as f:
    url = f.readline().strip()

# 创建NTLM认证处理器,自动复用Windows凭证
auth_handler = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler()
opener = urllib.request.build_opener(auth_handler)
urllib.request.install_opener(opener)

# 发起请求并读取内容
response = urllib.request.urlopen(url)
content = response.read().decode("utf-8")
print(content)

方法三:调用IE浏览器会话(适配复杂认证场景)

如果Power BI存在跳转式认证,前两种方法无法覆盖,可通过pywin32调用IE浏览器,复用已登录的系统会话:

  1. 安装依赖:
pip install pywin32
  1. 示例代码:
import win32com.client
import time

with open("link.txt", "r") as f:
    url = f.readline().strip()

# 启动IE浏览器(隐藏窗口)
ie = win32com.client.Dispatch("InternetExplorer.Application")
ie.Visible = False
ie.Navigate(url)

# 等待页面加载完成
while ie.Busy or ie.ReadyState != 4:
    time.sleep(0.5)

# 读取页面内容
content = ie.Document.body.innerHTML
print(content)

# 关闭浏览器
ie.Quit()

注意事项

  • 使用方法三时,需确保Python版本(32/64位)与IE浏览器版本一致,否则可能出现调用失败
  • 若需要获取Power BI报表的结构化数据,建议使用官方的Power BI REST API,而非直接爬取页面HTML

内容的提问来源于stack exchange,提问作者medo ampir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:22:25