pythonとBeautifulsoupとrequests
Beautifulsoupでscrapingをやってたが日本語の処理でつまずいた。
import requests from bs4 import BeautifulSoup #urlのデータをとってくる req=requests.get(url) #とってきたデータの文字コードを確認 print(req.encoding) #unicode->strに変換してBeautifulSoupに渡す soup = BeautifulSoup(req.text.encode(req.encoding))
これで日本語も正しくBeautifulSoupで認識されるはず。
文字コードの話がまとまって居て分かりやすかった。
追記(補足と訂正)
コメントでご指摘があったように、BeautifulSoupは入力された文章の文字コードを自動で判別してくれます。
kondou.com - Beautiful Soup 4.2.0 Doc. 日本語訳 (2013-11-19最終更新)
上記の処理での問題は、requests側の文字コード判別が問題で、sfhit_jisと認識されるべきところがiso-8859-1で判別していた為に正しく認識されなかったようです。
上の書き方だとBeautifulSoup側に問題があるような書き方となっていますが、requests側に問題があったということで、訂正させて頂きます。
pythonの文字コードに関する不勉強で要らぬ誤解を与えてしまったようでお詫び致します。