- blogs:
- cles::blog
2019/03/09

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
† 参考
- EC2 UbuntuでGoogle Chromeをヘッドレス実行してスクリーンショットを採取する手順 - Qiita
- UbuntuのCLI環境でGoogleChromeを使ってウェブサイトのスクリーンショットを取得する - Qiita
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10821
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(111980)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110611)
3 . 年次の人間ドックへ(110241)
4 . 2023 年分の確定申告完了!(1つめ)(109782)
5 . 三菱鉛筆がラミーを買収(109685)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110611)
3 . 年次の人間ドックへ(110241)
4 . 2023 年分の確定申告完了!(1つめ)(109782)
5 . 三菱鉛筆がラミーを買収(109685)
cles::blogについて
Referrers