2017-02-22 26 views
0

Пытается получить данные с html веб-сайта, используя lxml и XPath. Это, кажется, в порядке, за исключением она возвращает что-то неуместное:Python parser возвращает символы вместо слов из html

from lxml import html 
import requests 

page = requests.get('https://karabas.com') 
tree = html.fromstring(page.content) 

test_info = tree.xpath('//div[@class="posters-top"]/a/text()') 

print(test_info) 

Этот кусок HTML:

<div class="posters-top"> 
<a href="https://kiev.karabas.com/didyulya" class="category" style="background-colo #FF7A05;">Концерты</a> 
</div> 

Porgramm возвращает:

[u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0443\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0443\u0440\u044b', u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0443\u0440\u044b', u'\u041f\u043e\u044d\u0437\u0438\u044f', u'\u0421\u043f\u043e\u0440\u0442', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0443\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0443\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b', u'\u0421\u043f\u043e\u0440\u0442', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0443\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0443\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043b\u0443\u0431\u044b', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u0424\u0435\u0441\u0442\u0438\u0432\u0430\u043b\u0438', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0426\u0438\u0440\u043a', u'\u042d\u043a\u0441\u043a\u0443\u0440\u0441\u0438\u0438', u'\u0414\u0435\u0442\u044f\u043c', u'\u0421\u0435\u043c\u0438\u043d\u0430\u0440\u044b', u'\u0422\u0435\u0430\u0442\u0440\u044b', u'\u0414\u0435\u0442\u044f\u043c'] 

Что это? Все кажется правильным, и в соответствии с количеством этих символов это как-то код текста. Что мне с этим делать?

+1

Вы не могли бы показать нам содержимое страницы, прежде чем разобрать его? – tramstheman

+1

Это кириллица. Он отлично подходит для меня в PowerShell. – TigerhawkT3

+0

@ TigerhawkT3, что мне делать, чтобы увидеть это нормально в возвышенном редакторе, скажем? –

ответ

-1

Данные есть - вы видите представление строк, которые отображаются на терминале, который поддерживает только ASCII.

>>> print(u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b') 
>>> Концерты 

Вот пример вывода Python 2 на моей системе

>>> print u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b' 
Концерты 

Я думаю, что проблема в том, что когда вы printlist он показывает repr каждого элемента в списке:

>>> print [u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b'] 
[u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b'] 
>>> print u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b' 
Концерты 

Если вы хотите напечатать каждый элемент, перейдите по списку и распечатайте его напрямую:

>>> items = [u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b', u'8 \u043c\u0430\u0440\u0442\u0430', u'\u041a\u043e\u043d\u0446\u0435\u0440\u0442\u044b'] 
>>> for item in items: print item 
... 
Концерты 
Концерты 
8 марта 
Концерты 

Если это не правильно отображать, проверьте, что ваш стандартный вывод кодирования устанавливается в

>>> import sys 
>>> sys.stdout.encoding 
'UTF-8' 
+0

И как я могу кодировать в чем-то читаемом (в этом случае текст является цирролическим) –

+0

@Vinand, где вы хотите отобразить текст? –

+0

Это не только терминал; кодовая страница также зависит от версии Python. Он работает, как показано на Python 3, но не в Python 2, который использует OP. – TigerhawkT3