2017-02-22 12 views
0

lxmlとXPathを使用してウェブサイトのhtmlからデータを取得しようとしています。不適切な何かを返すことを除いて大丈夫そうです:Pythonパーサは、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

データがあります。unicodeの文字列が、ASCIIのレンダリングのみをサポートする端末に表示されています。

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

ここに私のシステム

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

上のPython 2からの出力例は、私が問題にしたとき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でデモンストレーションするように動作しますが、OPが使用しているPython 2では動作しません。 – TigerhawkT3

関連する問題