Python2.7でlxmlのXPathを使って取得した抽出結果のデータを
最終的にシフトJISの文字列型(str型)のリストの形で得たいのですが、
どうもうまくいかず困っています。
xpathを使って抽出されたデータが格納される変数は、
print文で表示可能で一見するとunicode型のリストの形ではあるものの、
中に格納されているデータを組み込み関数のtypeで確認してみると、
「<type 'lxml.etree._ElementUnicodeResult'>」や
「<class 'lxml.etree._ElementStringResult'>」という形式になっています。
これらをstr型(シフトJIS)に変換できないものかと
自分なりにいろいろ試行錯誤してみましたがうまくいかず、
web検索して調べてみても良い解決策が見つかりませんでした。
一体どうすればXPathの抽出結果を
シフトJISの文字列型(str形式)のリストの形で
取得できるでしょうか?
ちなみに、当方の環境は、OSがWindows7(64bit)、
Pythonは2.7.10(32bit)です。
Python
1# coding: cp932 2 3import lxml.html 4 5url = 'http://www.adobe.com/jp/#' 6xpath_query = '//a/text()' 7list = lxml.html.parse(url).xpath(xpath_query) 8 9print type(list) #<type 'list'> 10print list #リストの中身は確認可能。unicode型の文字列のリスト? 11print list[236] #UnicodeEncodeError: 'cp932' codec can't encode character u'\xed' in position 0:illegal multibyte sequence 12print list[236].encode('cp932','ignore') #何も表示されない 13print type(list[236]) #<type 'lxml.etree._ElementUnicodeResult'> 14print type(list[237]) #<class 'lxml.etree._ElementStringResult'>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/28 19:31
2016/04/29 03:41 編集
2016/04/29 13:21