質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

2336閲覧

pythonのurllib2の文字コード?の取り扱いについて

tamago0224

総合スコア71

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2016/08/18 02:41

以下のサイトを真似してサイトから記事のタイトル一覧を取得しようとしています。
参考サイト

ですが、実際に動かしてみると文字コードの違いからか表示される文字列が日本語ではありませんでした。どうやら問題はBeautifulSoupのほうではなくurllib2などで取得したデータの文字コードが原因らしいのですが、うまく治せませんでした。
とりあえず下にソースコードとデータの取得結果を載せさせていただきます。回答のほうをお願いします。

Python

1import requests as req 2import urllib2 3import re 4from bs4 import BeautifulSoup as bs 5import chardet 6 7html = urllib2.urlopen("http://jp.techcrunch.com/").read() 8#soup = bs(req.get("http://jp.techcrunch.com/").content, "html.parser") 9soup = bs(html, "html.parser") 10tc_titles = soup.find_all('a', {'data-omni-sm':re.compile('gbl_river_headline,*')}) 11 12tc_titles = [x.next_element for x in tc_titles] 13 14print tc_titles 15

出力結果

u'\u4eba\u9593\u7528\u30d9\u30c3\u30c9\u30de\u30c3\u30c8\u30ec\u30b9\u3067\u6210\u529f\u3057\u305fCasper\u304c\u4eca\u5ea6\u306f\u72ec\u81ea\u306e\u8996\u70b9\u3067\u72ac\u7528\u30d9\u30c3\u30c9\u3092\u958b\u767a', u'Blockai\u3001\u30c4\u30a4\u30fc\u30c8\u3059\u308b\u3060\u3051\u3067\u8457\u4f5c\u6a29\u3092\u4e3b\u5f35\u3067\u304d\u308b\u30c4\u30fc\u30eb\u3092\u63d0\u4f9b', u'Google Classroom\u304c\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3055\u308c\u6559\u5e2b\u3068\u89aa\uff0b\u6559\u5e2b\u3068\u5150\u7ae5\u751f\u5f92\u306e\u30b3\u30df\u30e5\u30cb\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u5145\u5b9f'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pythonのprint文をリスト内の要素に各々実行してください。ターミナルの表示文字コードutf8なら日本語が正しく出力されるはずです。

python

1for x in tc_titles: 2 print x

文字コードの問題というより、print文の仕様によるものです。
ユニコード型をprintすると、見やすい形で表示してくれますが、ユニコード型文字列が入ったリストやディクショナリをまるごとprintすると、u"uXXXX"のまま出力されます。
詳しくはpython print repr unicode 等のキーワードで検索してみてください。

投稿2016/08/18 03:30

NarugaL_ove

総合スコア108

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問