Какой хороший и надежный короткий способ получить кодировку веб-страницы?

Я немного удивлен, что получить кодировку веб-страницы с помощью Python так сложно. Я упустил способ? HTTPMessage имеет множество функций, но не это.

>>> google = urllib2.urlopen('http://www.google.com/')
>>> google.headers.gettype()
'text/html'
>>> google.headers.getencoding()
'7bit'
>>> google.headers.getcharset()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: HTTPMessage instance has no attribute 'getcharset'

Итак, вам нужно получить заголовок и разделить его. Дважды.

>>> google = urllib2.urlopen('http://www.google.com/')
>>> charset = 'ISO-8859-1'
>>> contenttype = google.headers.getheader('Content-Type', '')
>>> if ';' in contenttype:
...     charset = contenttype.split(';')[1].split('=')[1]
>>> charset
'ISO-8859-1'

Удивительное количество шагов для такой базовой функции. Я что-то упустил?

14
задан Lennart Regebro 25 December 2010 в 07:15
поделиться