pythonのseleniumで指定したURLの画面キャプチャを取得した際に文字化けが発生した場合の対処法についてまとめています。
実行したプログラムの例
chromeトップをキャプチャするプログラムです。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True
options.add_argument('--window-size=1280,1024')
driver = webdriver.Chrome(options=options)
driver.get("https://www.google.co.jp/")
driver.save_screenshot('test.png')
driver.quit()
文字化けの例
実行時に以下のような文字化けが発生。
文字化け(とうふ)が並んだ状態になっています。(*windowsize指定していません)
対処法
対処法は日本語用のフォントパッケージをインストールします。次のコマンドを実行してください。
sudo yum install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
途中でインストールしてもいいか?と聞かれるので「y」を入力してください。
以下のように文字化けが解消します。
以上で完了です。
(補足)notoフォントは機能せず、、
下記記事でnotoフォントを入れることで文字化けが解消するとの記事があったのですが、ワークしませんでした。(参考URL https://qiita.com/onorioriori/items/4fa271daa3621e8f6fd9)
#zipダウンロード用にtmpディレクトリに移動
cd /tmp/
#notoフォントのフルパッケージをインストール
wget https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.zip
#解凍
unzip Noto-hinted.zip
#/usr/share/fonts配下にディレクトリを作成
mkdir -p /usr/share/fonts/opentype/noto
#該当するファイルを移動
cp *otf *ttf /usr/share/fonts/opentype/noto
#フォントキャッシュの更新(やらなくてもいい)
fc-cache -f -v
指定ディレクトリ内にファイルを置いたのに文字化けが直りませんでした。
notoフォントとは
GoogleとAdobeとイワタが共同で開発した言語パッケージ。すべての言語に対応しています。
文字化けすると豆腐のような□がたくさん表示されるので、no tofu を略してnotoフォントです。
フォント毎にパッケージをDLすることもできるし、フルパッケージでDLすることもできます。
▼フルパッケージのURL
https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.zip
▼notoSansのURL
https://noto-website-2.storage.googleapis.com/pkgs/NotoSans-hinted.zip