【2019年12月】Ubuntuにseleniumをインストールする方法(Ubuntu16.04&python3&Webdriver)
はじめに
2019年12月、Ubuntu16.04Desktopにseleniumを入れて遊んでみようと思いましたが、古い記事が多くすぐに動きませんでした。
こちらの記事をベースに現時点で動作するように修正した手順を記載させていただきました。(https://qiita.com/shinsaka/items/37436e256c813d277d6d)
Ubuntu16.04上でseleniumを最低限動かせるようにするところまでの手順です。この手順後に色々アレンジしてください。今回はブラウザをヘッドレスで起動してスクリーンショットを撮る手順になっています。
環境
Ubuntu16.04 Desktop 64bit(4.4.0-170-generic)
python3.5.2
手順
作業用フォルダ作成
適当なところに作成
$ mkdir src
$ cd src
GoogleChromeインストール
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
※ダウンロード中に「http://chromedriver.storage.googleapis.com/○○○○/chromedriver.zip」と表示されるので○○の部分をメモしておく
$ sudo dpkg -i google-chrome-stable_current_amd64.deb
依存モジュールをaptでインストール
$ sudo apt update
$ sudo apt -f install -y
$ which google-chrome
※/usr/bin/google-chromeと表示されること
seleniumをインストール
$ sudo apt install python3-selenium
unzipインストール
$ sudo apt install unzip
ChromeDriverインストール
$ wget https://chromedriver.storage.googleapis.com/○○○○/chromedriver_linux64.zip
※○○の部分にはGoogleCromeインストールの手順でメモしたバージョンを入力してください。うまくいかない場合はhttps://chromedriver.storage.googleapis.com/にブラウザからアクセスしメモしたバージョンに近いバージョン番号を使用してください。
パスの通ったディレクトリに展開
$ unzip chromedriver_linux64.zip -d ~/bin/
$ which chromedriver
※/home/ubuntu/bin/chromedriverと表示されること 何も表示されない場合は展開先ディレクトリにパスが通っていない可能性がある
日本語フォントインストール
$ wget --content-disposition IPAfont00303.zip https://ipafont.ipa.go.jp/IPAfont/IPAfont00303.zip
※404エラーが表示される場合はhttps://ipafont.ipa.go.jp/old/ipafont/download.htmlにブラウザからアクセスしIPAfont00303.zipのリンクを確認してください
$ sudo unzip IPAfont00303.zip -d /usr/share/fonts/
フォントキャッシュクリア
$ fc-cache -fv
サンプルソース記述
$ touch getss.py
$ vi getss.py
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsoptions = Options()
options.binary_location = '/usr/bin/google-chrome'
options.add_argument('--headless')
options.add_argument('--window-size=1280,1024')driver = webdriver.Chrome('chromedriver', chrome_options=options)
driver.get('https://www.google.co.jp/search?q=chrome')
driver.save_screenshot('/tmp/screenshot.png')
driver.quit()
実行
$ python3 getss.py
※/tmpにscreenshot.pngがあることを確認
手順は以上です。