Python 独学プログラミング プログラミング初心者のencodeとdecodeでエラー発生〜UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x80 in position 0: invalid start byte編〜

あっ どうも子へびです。

先日かぼちゃプリンを初めて作って美味しくできたのでご満悦な子へびです。手作りのプリンの良さはなんと言っても自分好みのカラメルソースが作れるところでしょうか?
カラメルソースたっぷり派ですか?苦味派ですか?このあたりみんなそれぞれ好みがありますよね。笑

お菓子も作りつつスクレイピグに取り組んでいる子へびですが、あらゆるエラーコードを呼び出しています。決して好き好んでエラーを発生させているわけではありません。
今回はその一つのエラーコード子へびのような初心者にはまんまと引っかかりそうなネタをご紹介




子へび

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x80 in position 0:invalid start byte このエラーコードはなんだ?decodeできないって言ってるよね〜。

色々サイトを検索してこのエラーコードが出た時の解決策を探ったのですが

子へび

HTMLの中身が文字化けしちゃうな〜。

っとどうしても読み取りができない始末。

こんな時は頼みの綱のMaster松陰に相談。するとMaster松陰の回答は

Master松陰

これは元のデータが S-JIS でかかれてるんだよ。だから、pythonで読むときに S-JISで読み込まないとダメね。多分、今は UTF-8で読むようになってるんじゃない?

子へび

やっぱり〜。そこまでは読み取れました。でも読み込みをJISにするのが気付いていなかった!

Master松陰

古いサイトとか、素人さんが作ったサイトだと
S-JISとかになってるんだよ。イマドキは UTF-8を使うのが常識だけどね。

ということでもしこのエラーコードが出て行き詰まってしまう方がいたらコードの書き方は間違っていないのにサイトに書かれてる文字が何で書かれているのかを確認してdecode設定すると解決するかもしれません!

子へびこの文字についてはかなり検索しました〜。今度どのくらい検索したか数えておこうと思ったぐらいです。笑
でも実際はこんな簡単な解決方法だったりするのでもしご参考になれば。

そして子へびまた新たなるエラーコードが発生しております。

子へび

次なんだ!とほほ・・・。