2016-08-01 1 views
-1

Je demande ulrs utilisant le paquet requests en python (par exemple file = requests.get (url)). Les urls ne spécifient pas d'extension, et parfois un fichier html est retourné et parfois un pdf est retourné.Déterminez si l'URL est un fichier pdf ou html

Existe-t-il un moyen de déterminer si le fichier retourné est un pdf ou un HTML? (ou plus généralement, quel est le format du fichier). Le navigateur est capable de déterminer, donc je suppose qu'il doit être indiqué dans la réponse.

Répondre

3

Cela se trouve dans l'en-tête Content-Type, soit text/html ou 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())