requestsモジュールでの文字化け対策

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