2016-11-20 6 views
0

私はbeautifulsoupを使ってpython scrapperを書こうとしています。私は正常にデータの大部分を抽出しましたが、私は現在、価格抽出におけるエンコーディングの問題に直面しています。ここでbeautifulsoupで廃棄されたデータのエンコーディングを修正するにはどうすればよいですか?

は私の例です:

実際のテキストは、廃棄テキストである1599€99

です:

>>>prdt.find("span",{"class":"price"}).text 
u'1599\u20ac99' 

"\ u20acは、" 使用して '€' 記号ことになっていますUTF-8エンコーディング:

>>>prdt.find("span",{"class":"price"}).text.encode(encoding='UTF-8') 
'1599\xe2\x82\xac99' 

誰でもこの問題を解決する方法はありますか?

ありがとうございました。

答えて

0

スクリプトはうまく機能:

>>> prdt.find("span",{"class":"price"}).text 
u'1599\u20ac99' 

戻り値は、有効なユニコード文字列です。文字u "\ u20ac"はEURO SIGNです。

'utf8'エンコードを使用してこの文字をエンコードすると、バイトの文字列が得られます。

>>> u'\u20ac'.encode('utf8') 
b'\xe2\x82\xac' 

これは、UTF-8:E2 82 ACでエンコードされたコードポイントと同じです。

また、この回答をWhat is Unicode, UTF-8, UTF-16?にも参照してください。

1

ユニコード文字列の表現です。あなたは単にそれを印刷するだけでそのコンテンツを見ることができます。

>>> u1= u'1599\u20ac99' 

>>> print u1 
# prints 1599€99 

>>> u2 = u'1599€99' 

>>> u2 
# prints u'1599\u20ac99' 
関連する問題