【Selenium】ヘッドレスChromeの言語設定を英語→日本語にする
- Python -
2020.08.20
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')