用Python从ASPX网站自动下载文件
这是我第一次在stack overflow上发表文章,我期待着更多地参与社区。我需要从ASPX网站下载、重命名和保存许多Excel文件,但我无法通过URL直接访问这些Excel文件(即,URL不以“excelfilename.csv”结尾)。我所能做的就是转到一个URL,该URL启动文件的下载。下面是URL的一个示例 我想通过循环改变的输入是“ExcelFileName”和“SomeDate”。我知道当Excel文件可以通过URL直接访问时,可以使用urllib获取这些文件,但是我如何使用像这样的URL呢用Python从ASPX网站自动下载文件,python,asp.net,download,web,Python,Asp.net,Download,Web,这是我第一次在stack overflow上发表文章,我期待着更多地参与社区。我需要从ASPX网站下载、重命名和保存许多Excel文件,但我无法通过URL直接访问这些Excel文件(即,URL不以“excelfilename.csv”结尾)。我所能做的就是转到一个URL,该URL启动文件的下载。下面是URL的一个示例 我想通过循环改变的输入是“ExcelFileName”和“SomeDate”。我知道当Excel文件可以通过URL直接访问时,可以使用urllib获取这些文件,但是我如何使用像这
提前感谢您的帮助 使用
请求
库,您可以获取文件并迭代块以写入文件
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)
这很好用。非常感谢。除此之外,我还需要添加一个密码和用户名,这很容易使用请求。我以前不知道有什么请求;太棒了。我将仔细阅读并试图更好地理解为什么我们使用1024作为块大小。这是我唯一不明白的部分。是的,这确实是一个了不起的图书馆;不需要坚持使用urllib。很高兴我能帮忙!我使用1024只是出于习惯,过去在做教程时使用它。该文件指出,“iter_内容”用于防止在内存中存储过大的对象。