在Python 3中下载由url生成的文件

时间:2017-09-25 15:37:29

标签: python python-3.x python-requests

我知道在python中使用请求模块我可以下载文件。如果链接形式为:

https://mypage/filename.extension

这是相对简单的。但是,请求的形式在以下几行中的情况如何:

https://mypage/generate_report?export=csv

如果将网址输入浏览器,则会提示我打开或保存文件。如何保存浏览器提示我下载的文件?

谢谢!

编辑:在我的特定用例中,URL生成链接,然后提示下载文件。有问题的文件实际上并不存在"存在"在URL中,这就是为什么注释中提到的常用方法可能不适用于此。

编辑:我尝试了前两个解决方案:

How to download image using requests

即使它得到200回复​​,我也没有获得CSV内容,只有html:

import requests
import shutil

page = requests.get("https://mypage/generate_report?export=csv",auth=('usr','pass'),stream=True)

print(page.status_code)

if page.status_code == 200:
    print('a')
    with open('sf.csv', 'wb') as f:
        page.raw.decode_content = True
        shutil.copyfileobj(page.raw, f)

0 个答案:

没有答案