我现在有下面的代码,只要GET
上的响应有content-disposition
头,它就可以正常工作。然而,当没有标题时问题就出现了。通常这表示在浏览器中查看文件。有没有办法从python内部强制下载?你知道吗
def action_download(doc_list):
i = 0
for doc in doc_list:
try:
r = requests.get(doc)
filename = re.search('filename="(.*)"', r.headers['content-disposition']).group(1)
with open(filename, "w") as code:
i += 1
code.write(r.content)
code.close()
except requests.exceptions.ConnectionError:
print '\nError: File Not Found Server Side'
print doc
except Exception:
print '\nUnknown Error'
print doc
print r.headers
traceback.print_exc()
continue
if i < 1:
sys.exit()
根据回复更新代码
定义文件名并通过写功能传递数据内容非常有效。为遇到问题的人更新了下面的代码。你知道吗
*注意KeyError
异常中的添加。你知道吗
def action_download(doc_list):
i = 0
for doc in doc_list:
try:
r = requests.get(doc)
filename = re.search('filename="(.*)"', r.headers['content-disposition']).group(1)
with open(filename, "w") as code:
i += 1
code.write(r.content)
code.close()
except requests.exceptions.ConnectionError:
print '\nError: File Not Found Server Side'
print doc
except KeyError:
temp = str(doc).rsplit('.', 1)[1]
ext = re.sub(r'\?.*', r'', temp)
filename = "file{}.{}".format(i, ext.replace('?T', ''))
with open(filename, "w") as code:
i += 1
code.write(r.content)
code.close()
continue
except Exception:
print '\nUnknown Error'
print doc
print r.headers
traceback.print_exc()
continue
if i < 1:
sys.exit()
目前没有回答
相关问题 更多 >
编程相关推荐