Как исправить «Строки Unicode с объявлением кодировки не поддерживаются.

ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration. 
Когда я пытаюсь разобрать этот сайт, не 9X_parse получается.
Когда я пытаюсь сериализовать 9X_lxml этот текст страницы, у меня возникает ошибка TypeError: Type 'str' cannot be serialized
from lxml import html source = 'http://games.chruker.dk/eve_online/item.php?type_id=814' path = '//*[@id="top"]/table[1]/tbody/tr[1]/td[3]/table' page = requests.get(source) pagetext = page.text parser = html.fromstring(pagetext) result = parser.xpath(path) print(result) 

Я 9X_pythonista ожидаю, что таблица требований, как на сайте: http://games.chruker.dk/eve_online/item.php?type_id=814
9
1

  • Почему вы не используете напрямую element = html.parse (source)? Метод `html.parse` поддерживает ...
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: Как исправить «Строки Unicode с объявлением кодировки не поддерживаются.

Попробуйте это:

parser = html.fromstring(bytes(pagetext, encoding='utf8')) 

9X_py

14
0

Ответ #2

Ответ на вопрос: Как исправить «Строки Unicode с объявлением кодировки не поддерживаются.

Функция parse, предоставляемая API, позволяет 9X_python напрямую передавать URL-адрес, как в переменной 9X_parser source:

from lxml import html source = 'http://games.chruker.dk/eve_online/item.php?type_id=814' path = '//*[@id="top"]/table[1]/tbody/tr[1]/td[3]/table' tree = html.parse(source) result = tree.xpath(path) print(result) 

1
0