как скачать кодированный utf-8 контент с кириллицей - PullRequest
0 голосов
/ 29 июня 2018

Пожалуйста, покажите мне, как получить правильный контент utf-8 с кириллицей.

Я использую следующий фрагмент кода:

from http.client import HTTPSConnection

conn = HTTPSConnection('lifehacker.ru')
conn.request('GET', '/')
resp = conn.getresponse()
st = resp.read()
content = ''.join(map(chr, st))
conn.close()
print(content)

В результате я получаю контент вроде:

<title>ÐайÑÑÐ°ÐºÐµÑ - ÑовеÑÑ Ð¸

Как получить правильные символы кириллицы?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Если вы должны использовать HTTPSConnection, вам нужно декодировать ответ с соответствующей кодировкой:

content = st.decode('utf-8')

(В Python 3 resp.read() возвращает объект байта, готовый для декодирования с соответствующей кодировкой)

Однако не кодируйте жестко, т. Е. UTF-8. Используйте поле Content-type для определения правильной кодировки или используйте вместо него библиотеку Requests , которая сделает это за вас.

0 голосов
/ 29 июня 2018

вы должны расшифровать контент вот так

st = resp.read().decode("utf-8")

более простой способ - использовать запросы, так как они автоматически декодируют контент

import requests
response = requests.get('http://lifehacker.ru')

print(response.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...