python - 使用请求在 Python 中下载 SSRS 报告
问题描述
我正在尝试使用requests
下载 SSRS 报告。以下代码将下载一个空的 Excel 文件:
url = 'http://MY REPORT URL HERE/ReportServer?/REPORT NAME HERE&rs:Format=EXCELOPENXML'
s = requests.Session()
s.post(url, data={'_username': 'username, '_password': 'password'})
r = s.get(url)
output_file = r'C:\Saved Reports\File.xlsx'
downloaded_file = open(output_file, 'wb')
for chunk in r.iter_content(100000):
downloaded_file.write(chunk)
我已经成功地用来requests_ntlm
完成这个任务,但我想知道为什么上面的代码没有按预期工作。Excel 文件原来是空的;我觉得这是由于登录并将这些 cookie 传递给GET
请求的问题。
解决方案
我能够让它工作,但对于 pdfs。我在这里找到了解决方案
这是我的一段代码片段:
import requests
from requests_ntlm import HttpNtlmAuth
session = requests.Session()
session.auth = HttpNtlmAuth(domain+uid,pwd)
response = session.get(reporturl,stream=True)
print response.status_code
with open(outputlocation+mdcProp+'.pdf','wb') as pdf:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
pdf.write(chunk)
session.close()
推荐阅读
- html - 如何通过我编写的 HTML 将保存的照片放入网页
- laravel-5 - 如何解决“您的要求无法解决为一组可安装的软件包。” 在 laravel 锅炉模板中
- c - c字符串数组和指针传递方法不起作用
- python - np.reshape(-1) 做什么
- java - 通过Maven支持多个应用服务器
- apache-spark - 如何将 rdd 的 pandas DataFrame 转换为 Spark DataFrame
- linux - unix 仅按单列排序
- javascript - Nodejs 将 2 个中间件变成 1 个
- python - AttributeError:“str”对象没有属性“xpath”
- regex - 无法或两个 grep 的正则表达式