【Selenium】ヘッドレスChromeの言語設定を英語→日本語にする

- Python -
2020.08.20
Python[パイソン]

Python × Selenium × ChromeDriverで日英に対応したサイトでブラウザ操作をしようとして、

  • 通常のブラウザモードで起動すると、日本語で表示される
  • headlessオプションで起動すると、英語で表示される

という困った事象が起きました。

具体的には、以下のようにwebdriver.Chrome()options引数を与えずブラウザを起動すると、getしたサイトは日本語で表示されました。

Pythonimport chromedriver_binary
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://xxxxxx.com')

ところが、以下のように'--headless'オプションを与えてヘッドレスモードで起動すると、英語表記のHTMLが返ってきてしまいました。

Pythonimport chromedriver_binary
from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_argument('--headless')
driver = webdriver.Chrome(options=option)
driver.implicitly_wait(10)
driver.get('https://xxxxxx.com')

これを、ヘッドレスモードで起動しても必ず日本語で返ってくるようにします。

【解決】ChromeDriverの言語設定オプション"lang"を設定する

以下、6行目のように'--lang=ja-JP'オプションを設定すると日本語表示のHTMLが返ってくるようになりました。

Pythonimport chromedriver_binary
from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_argument('--headless')
option.add_argument('--lang=ja-JP')
driver = webdriver.Chrome(options=option)
driver.implicitly_wait(10)
driver.get('https://xxxxxx.com')
↑TOP