requestsモジュールでウェブページのデータを取得すると、時々文字化けすることがある。
■文字化けするPythonプログラム
import requests URL = 'http://www.takarakujinet.co.jp/loto7/' data = requests.get(URL) print(data.text)
どうやら、エンコーディングがUTF-8でないことが原因らしい。
import requests URL = 'http://www.takarakujinet.co.jp/loto7/' data = requests.get(URL) print(data.encoding) # ISO-8859-1と表示される。
そこで、取得したテキストのエンコーディングを強引にUTF-8に変更してやる。
import requests URL = 'http://www.takarakujinet.co.jp/loto7/' data = requests.get(URL) print(data.encoding) data.encoding = 'UTF-8' print(data.text)
文字化けは消えた。
ところで、私が借りているレンタルサーバーの中に、UTF-8で書かれたHTMLファイルがなぜかISO-8859-1でエンコードされるという現象が発生している。
理由はよくわからない。 🙁
参考サイト
Python Tips:Requests ライブラリのレスポンスボディの文字化けを解消したい|Life with Python