Table of Contents

Selenium Driver を使って Chrome (headless モード)を自動運転する。

環境

  • CentOS Linux release 7.7.1908 (Core)
  • Google Chrome 79.0.3945.88
  • ChromeDriver 79.0.3945.36
  • Python 3.6.8

インストール

  1. Chrome 用リポジトリ設定を作成 /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
  2. Chrome のインストール # yum install -y libOSMesa google-noto-cjk-fonts google-chrome-stable
  3. Chrome Driver のインストール (EPELリポジトリ) # yum install -y libX11 GConf2 fontconfig lsof chromedriver
  4. バージョン確認 # google-chrome --version Google Chrome 79.0.3945.88 # chromedriver -v ChromeDriver 78.0.3904.108 (...省略...)
  5. Chrome と ChromeDriver のバージョンが異なっている場合は ChromeDriver を手動でダウンロード
    Downloads - ChromeDriver - WebDriver for Chrome # yum erase -y chromedriver # wget https://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_linux64.zip # unzip chromedriver_linux64.zip # mv chromedriver /usr/bin/ # rm chromedriver_linux64.zip # chromedriver -v ChromeDriver 79.0.3945.36 (...省略...)
  6. Chrome が headless モードで動作することを確認
    エラーが出る場合はオプションを追加してみる: --disable-gpu, --disable-dev-shm-usage, --disable-setuid-sandbox, --no-sandbox, disable-infobars # google-chrome --headless --dump-dom https://www.google.com/
  7. Selenium パッケージのインストール # pip3 install selenium
  8. 動作確認
    testChromeDriver.py

    #!/bin/python3
    
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument('--headless')
    #options.add_argument('--disable-gpu')
    options.add_argument('--window-size=1280,1024')
    driver = webdriver.Chrome(chrome_options=options)
    driver.get('https://www.google.co.jp/')
    print(driver.title) #=> Google
    driver.save_screenshot('test.png')