Ответы пользователя по тегу lxml
  • Как правильно парсить utf-8 в lxml?

    @766dt Автор вопроса
    Вобщем, проблема оказалась в странном поведении chardet:
    >>> cchardet.detect('Hyvä juoni'.encode())
    {'confidence': 0.8032709360122681, 'encoding': 'WINDOWS-1252'}
    >>> cchardet.detect('Hyv juoni'.encode())
    {'confidence': 0.0, 'encoding': 'ASCII'}
    >>> cchardet.detect('ä'.encode())
    {'confidence': 0.5049999952316284, 'encoding': 'UTF-8'}

    Пока лучшее, что придумал, это вручную задавать кодировку контента, если она известна.
    fragment = fromstring(content, parser = lxml.html.HTMLParser(encoding='utf-8'))

    А вот если кодировка неизвестна, и при этом неверно определяется при помощи chardet, то решения я пока не вижу.
    Ответ написан
    Комментировать