Хороший способ получить кодировку / кодировку ответа HTTP в Python

Ищете простой способ получить информацию о кодировке / кодировке HTTP-ответа, используя Python urllib2 или любую другую библиотеку Python.

>>> url = 'http://some.url.value'
>>> request = urllib2.Request(url)
>>> conn = urllib2.urlopen(request)
>>> response_encoding = ?

Я знаю, что он иногда присутствует в заголовке Content-Type, но этот заголовок содержит другую информацию, и он встроен в строку, которую мне нужно будет проанализировать. Например, заголовок Content-Type, возвращаемый Google:

>>> conn.headers.getheader('content-type')
'text/html; charset=utf-8'

Я мог бы работать с этим, но я не уверен, насколько последовательным будет формат. Я почти уверен, что кодировка может отсутствовать полностью, поэтому мне придется заняться этим крайним случаем. Похоже, что-то вроде операции разбиения строки, чтобы вытащить из нее 'utf-8', должно быть неправильным способом делать подобные вещи.

>>> content_type_header = conn.headers.getheader('content-type')
>>> if '=' in content_type_header:
>>>  charset = content_type_header.split('=')[1]

Это тот код, который кажется, что он делает слишком много работы. Я также не уверен, будет ли это работать в каждом случае. У кого-нибудь есть лучший способ сделать это?

Ответы на вопрос(5)

Ваш ответ на вопрос