Pythonでスクレイピングをしたhtmlデータをローカルに保存する際に以下のエラーが発生した時の対処法。
UnicodeEncodeError: ‘cp932’ codec can’t encode character ‘\xa9’ in position 42041: illegal multibyte sequence
原因はPCがwindowsであり、cp932とは、マイクロソフトがShift_JISを独自に拡張した文字コード。上記エラーは次のコードを指していた。
f.write(dl.text)
原因を突き詰めると、ファイルを開く際に、UTF-8 でエンコードでの記述設定をする必要があり以下の通り、encoding=”utf-8_sig”を付け足すことで解決が可能(一例)
f = open(filename, mode=”w”, encoding=”utf-8_sig”)