Как исправить «Строки 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
R
ReSUrrected
- Почему вы не используете напрямую element = html.parse (source)? Метод `html.parse` поддерживает ...
2
Общее количество ответов: 2
Ответ #1
Ответ на вопрос: Как исправить «Строки Unicode с объявлением кодировки не поддерживаются.
Попробуйте это:
parser = html.fromstring(bytes(pagetext, encoding='utf8'))
9X_py
14
T
Troblemaker
Ответ #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
O
Ooldmachine
-
1
-
11
-
3
-
1
-
3
-
2
-
2
-
1
-
4
-
6
-
3
-
3
-
2
-
5
-
2
-
3
-
4
-
4
-
4
-
6
-
2
-
3
-
1
-
3
-
2
-
6
-
2
-
20
-
1
-
2
-
1
-
2
-
9
-
11
-
5
-
3
-
6
-
2
-
2
-
4
-
3
-
3
-
3
-
1
-
1
-
1
-
4
-
1
-
3
-
1