UnicodeEncodeError: ‘cp932’ codec can’t encode character対策(BeautifulSoup)

エンコードエラーで止まる

Yahooからのスクレイピングを参考にURLだけ変更してテストすると

エラーで止まるサイトが出てくるので対策

原因はWindowsで文字列を出力する時に、変換できない文字が含まれているから

上の例では’\u2628’が引っ掛かった

元々はShift-JIS=CP932だったが、

CP932は各社(NECやIBM等々)が自由に文字を追加していたため

バラツキができてしまった

今のCP932は統合されているが

Shift-JIS<CP932の文字数になっている(CP932はMS932とも言う)

CP932にあってShift-JISにない文字(コードが被っている)もあって変換に失敗する場合もある

出力できない文字を変換する事で対策する

 上記の例では変換できない文字を削除しています
?に変換する場合は’ignore’を’replace’に変更

シェアする

  • このエントリーをはてなブックマークに追加

フォローする