requests.get()で文字化けした時はencodingを追加してみよう! はじめてのPython

requests.get()してみたら文字化けしたので、その時に追加したコードを備忘録として残したいと思います。

環境

ざっくりMac
Python3.9を使用しています。

文字化けしたコード

実際はurlに日本語が使われているhtmlのページを代入して行いました。

import requests
url ="https://xxx/xxx.html"
response = requests.get(url)
print(response.text)

実行後に取得して表示されたhtmlは英語の箇所は読めるものの日本語の部分は読めないものとなっておりました。

文字化けを回避したコード

response.apparent_encodingを追加します。

import requests
url ="https://xxx/xxx.html"
response = requests.get(url)
# encodingを追加
response.encoding = response.apparent_encoding
print(response.text)

response.apparent_encodingでは正しい文字コードを自動的に推測し選んでくれるようになります。

おわり

Pythonが簡単でなんだかそれはそれでついていけない。Ajaxですごい苦労したのに簡単にhtml取得できてしまった。調子乗ってたら文字化けしてあたふたしましたが、これもすぐに解決できてしまいました。
Pythonすごい。

Python

Posted by Nakamoto