使用Python自动从ASPX网站下载文件

时间:2016-02-25 17:55:31

标签: python asp.net download web

这是我第一次发布堆栈溢出,我期待更多地参与社区活动。我需要从ASPX网站下载,重命名和保存许多Excel文件,但我无法通过URL直接访问这些Excel文件(即,URL不以" excelfilename.csv"结尾)。我能做的是转到启动文件下载的URL。 URL的示例如下。

https://www.websitename.com/something/ASPXthing.aspx?ReportName=ExcelFileName&Date=SomeDate&reportformat=csv

我想通过循环改变的输入是" ExcelFileName"和#34; SomeDate"。我知道当可以通过URL直接访问Excel文件时,可以使用urllib获取这些文件,但是如何使用这样的URL来实现?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用requests库,您可以获取文件并迭代块以写入文件

import requests

report_names = ["Filename1","Filename2"]
dates = ['2016-02-22','2016-02-23']  # as strings
for report_name in report_names:
    for date in dates:
        with open('%s_%s_fetched.csv' % (report_name.split('.')[0],date,), 'wb') as handle:
            response = requests.get('https://www.websitename.com/something/ASPXthing.aspx?ReportName=%s&Date=%s&reportformat=csv' % (report_name,date,), stream=True)

            if not response.ok:
                # Something went wrong

            for block in response.iter_content(1024):
                handle.write(block)