@nexus0

Проблема с кодировкой в requests_html?

Не получается спарсить заголовок сайта в правильной кодировке.
>>> from requests_html import HTMLSession
>>> session = HTMLSession()
>>> r = session.get('https://pm.by/live.html')
>>> print(r.encoding)
WINDOWS-1251
>>> r.html.xpath('//title/text()')
['������ Live � ������ �� ����� ���� (�� ���� �����): �� ��������']

У сайта кодировка cp1251, когда делаю xpath-запрос получаю кракозябры.
Кракозябры не хотят перегоняться даже в байты, методом encode.
>>> r.html.xpath('//title/text()')[0].encode('cp1251')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/encodings/cp1251.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-5: character maps to <undefined>

В чем может быть проблема?
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
@Drill
Попробуй r.content.decode('cp1251')

или

r.html.encoding = 'cp1251'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы