エンコードエラーで止まる
Yahooからのスクレイピングを参考にURLだけ変更してテストすると
エラーで止まるサイトが出てくるので対策
原因はWindowsで文字列を出力する時に、変換できない文字が含まれているから
上の例では’\u2628’が引っ掛かった
元々はShift-JIS=CP932だったが、
CP932は各社(NECやIBM等々)が自由に文字を追加していたため
バラツキができてしまった
今のCP932は統合されているが
Shift-JIS<CP932の文字数になっている(CP932はMS932とも言う)
CP932にあってShift-JISにない文字(コードが被っている)もあって変換に失敗する場合もある
出力できない文字を変換する事で対策する
1 2 3 4 5 6 7 |
#str_textが取得した文字列 str_text = str_text.encode('cp932','ignore') #このままだと出力時に\x90D\x93cのようになって読めないので直す str_text = str_text.decode('cp932') |
上記の例では変換できない文字を削除しています
?に変換する場合は’ignore’を’replace’に変更