BLOGTIMES
2019/03/09

WSL の Ubuntu 18.04 に chrome と selenium 環境を作る

  python  chrome  selenium  wsl  systemdown 
このエントリーをはてなブックマークに追加

Google のスクリーンショット - WSL の Ubuntu 18.04 に chrome と selenium 環境を作る

先日 Windows 上に構築した Python + ChromeDriver 環境を Linux に移植するために、その前段として WSL に同様の環境を実現してみることにしました。

関連のソフトウェアのインストール

以下のスクリプトを WSL の DOS 窓に貼り付ければ準備は完了です。
多数のソフトウェアが導入されるので、ネットが遅かったりするとかなり時間がかかります。

# chrome のリポジトリを追加 wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' # 各種パッケージのインストール sudo apt update sudo apt install -y python3-pip python3-dev libgconf2-4 google-chrome-stable xvfb unzip sudo apt upgrade -y # python 用のライブラリのインストール sudo pip3 install selenium pyvirtualdisplay transitions # chromedriver のインストール wget https://chromedriver.storage.googleapis.com/73.0.3683.68/chromedriver_linux64.zip sudo unzip chromedriver_linux64.zip -d /usr/local/bin/ sudo chmod 755 /usr/local/bin/chromedriver # 日本語フォントのインストール wget --content-disposition IPAfont00303.zip http://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php sudo unzip IPAfont00303.zip -d /usr/share/fonts/ fc-cache -fv

サンプルスクリプト

定番の Google のトップページを開いてスクショを撮るためのスクリプトはこんな感じでしょうか。
今回は headless モードは使わずに xvfb の仮想ディスプレイに描画させています。

# サンプルスクリプトの生成 cat <<'EOS' > sample.py #!/usr/bin/python3 from selenium import webdriver from selenium.webdriver.chrome.options import Options from pyvirtualdisplay import Display display = Display(visible=0, size=(1280, 1024)) display.start() options = Options() options.binary_location = '/usr/bin/google-chrome' options.add_argument('--window-size=1280,1024') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') prefs = { "download.prompt_for_download": False, "download.default_directory": "/path/to/donload/dir", "download.directory_upgrade": True, "profile.default_content_settings.popups": 0, "plugins.plugins_disabled":["Chrome PDF Viewer"], "plugins.always_open_pdf_externally": True, } options.add_experimental_option("prefs",prefs) driver = webdriver.Chrome('/usr/local/bin/chromedriver', chrome_options=options) driver.get('https://www.google.com') driver.save_screenshot("screenshot.png") driver.quit() display.stop() EOS chmod 755 sample.py ./sample.py

参考


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10821
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン