Python解析器返回符号而不是html中的单词

时间:2017-02-22 00:50:39

标签: python html python-2.7 unicode cyrillic

尝试使用lxml和XPath从网站的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 个答案:

答案 0 :(得分:-1)

数据就在那里 - 你看到终端上显示的unicode字符串的表示只支持渲染ASCII。

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

以下是我系统上Python 2的示例输出

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

我认为问题是,当您print list时,它会显示列表中每个项目的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 марта
Концерты

如果显示不正确,请检查您的stdout编码设置为

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