我在python中使用请求包请求ulrs(例如file = requests.get(url))。网址没有在其中指定扩展名,有时会返回html文件,有时会返回pdf。
有没有办法确定返回的文件是pdf还是HTML? (或更一般地说,文件格式是什么)。浏览器能够确定,所以我假设必须在响应中指明。
答案 0 :(得分:6)
这可以在Content-Type
标题中找到,text/html
或application/pdf
import requests
r = requests.get('http://example.com/file')
content_type = r.headers.get('content-type')
if 'application/pdf' in content_type:
ext = '.pdf'
elif 'text/html' in content_type:
ext = '.html'
else:
ext = ''
print('Unknown type: {}'.format(content_type))
with open('myfile'+ext, 'wb') as f:
f.write(r.raw.read())