尝试使用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']
那是什么?一切似乎都是正确的,根据这些符号的数量,它是某种方式的文本代码。我该怎么办呢?
答案 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'