我正在下载远程文件的列表。我的代码如下所示:如果没有找到文件,Python请求下载HTML
try:
r = requests.get(url, stream=True, verify=False)
total_length = int(r.headers['Content-Length'])
if total_length:
with open(file_name, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
f.flush()
except (requests.RequestException, StandardError):
pass
我的问题是,要求下载该文件不存在纯HTML(例如404页,或在自然界中的HTML页面其他类似)。有没有办法绕过这个?任何头可能检查像Content-Type
?
解决方案:
我用了r.raise_for_status()
函数调用按照接受的答案,也增加了额外的检查Content-Type
像:
if r.headers['Content-Type'].split('/')[0] == "text":
#pass/raise here
(MIME类型列表在这里:http://www.freeformatter.com/mime-types-list.html)
谢谢!我还为内容类型添加了额外的检查(如果不是text/*)。 – Ion