确定url是pdf还是html文件

时间:2016-08-01 03:29:13

标签: python-3.x python-requests

我在python中使用请求包请求ulrs(例如file = requests.get(url))。网址没有在其中指定扩展名,有时会返回html文件,有时会返回pdf。

有没有办法确定返回的文件是pdf还是HTML? (或更一般地说,文件格式是什么)。浏览器能够确定,所以我假设必须在响应中指明。

1 个答案:

答案 0 :(得分:6)

这可以在Content-Type标题中找到,text/htmlapplication/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())