2012-09-18 17 views
8

Ich brauche den Inhaltstyp einer Internet (Intranet) Ressource nicht eine lokale Datei. Wie kann ich den MIME-Typ aus einer Ressource hinter einer URL erhalten:Python: Wie bekomme ich den Inhaltstyp einer URL?

Ich versuchte dies:

res = urllib.urlopen("http://www.iana.org/assignments/language-subtag-registry") 
http_message = res.info() 
message = http_message.getplist() 

I erhalten: ['charset=UTF-8']

Wie kann ich die Content-Type bekommen, können urllib erfolgen mit und wie oder wenn nicht, was ist der andere Weg?

+4

Siehe http://stackoverflow.com/questions/843392/python-get-http-headers-from-urllib-call – sqrtsben

+0

Druck res.info() .gettype() –

+0

http://Stackoverflow.com/a/21515813/538284 –

Antwort

15
res = urllib.urlopen("http://www.iana.org/assignments/language-subtag-registry") 
http_message = res.info() 
full = http_message.type # 'text/plain' 
main = http_message.maintype # 'text' 
+2

Hinweis: Dies funktioniert nur für Python 2.x –

10

A Python3 Lösung dieses Problems:

import urllib.request 
with urllib.request.urlopen('http://www.google.com') as response: 
    info = response.info() 
    print(info.get_content_type())  # -> text/html 
    print(info.get_content_maintype()) # -> text 
    print(info.get_content_subtype()) # -> html 
Verwandte Themen