私は美しいスープをPythonで学んでいます。ユニコードのテキストを通常のテキストに変換するには
私は書籍のリストで簡単なWebページを解析しようとしています。私は以下のコードを使用し
例えば
<a href="https://www.nostarch.com/carhacking">The Car Hacker’s Handbook</a>
。
import requests, bs4
res = requests.get('http://nostarch.com')
res.raise_for_status()
nSoup = bs4.BeautifulSoup(res.text,"html.parser")
elems = nSoup.select('.product-body a')
#elems[0] gives
<a href="https://www.nostarch.com/carhacking">The Car Hacker\u2019s Handbook</a>
そして
#elems[0].getText() gives
u'The Car Hacker\u2019s Handbook'
しかし、私はで与えられる適切なテキストをしたい、「車のハッカーのハンドブック」出力を代わりに与えるために私のコードを変更する方法
s = elems[0].getText()
print s
>>>The Car Hacker’s Handbook
「自動車ハッカーのハンドブック」の「?
助けてください。
結果に間違いはありません。それは、素晴らしいアポストロフィー文字を持つUnicode文字列です。 – Selcuk
ありがとう、@セルク。 しかし、その文字列 "u'The Car Hacker \ Handbook"を使ってファイル/データベースに保存する方法は? 正しく保存されますか?私は 'f.write(elems [0] .getText())'を試したことを意味し、UnicodeEncodeErrorを得ました。 –
ありがとう、@セルク。わかった。 ファイルやデータベースに保存するために 'elems [0] .getText()。encode( 'utf-8')'を使用しました。 –