SeleniumとPhantomJSの環境構築
Docker上にUbuntuの構築
$ docker pull ubuntu:16.04
$ docker run -it ubuntu:16.04
Python3とSeleniumのインストール
apt-get update
apt-get install -y python3 python3-pip
pip3 install selenium
pip3 install beautifulsoup4
PhantomJSのインストール
apt-get install -y wget libfontconfig mkdir -p /home/root/src && cd $_ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 cd phantomjs-2.1.1-linux-x86_64/bin/ cp phantomjs /usr/local/bin/
日本語フォントが表示されるようにする
apt-get install -y fonts-migmix cat <<EOF > /etc/fonts/local.conf <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="assign" binding="strong"> <string>MigMix 2P</string> </edit> </match> </fontconfig> EOF
Dockerをコミットしておく
exit docker ps -a docker commit (コンテナID) ubuntu-phantomjs
コンテナ起動
$ docker run -it -v $HOME(ホストのパス):$HOME(コンテナのパス) \ > -e LANG=ja_JP.UTF-8 \ > -e PYTHONIOENCODING=utf_8 \ > ubuntu-phantomjs /bin/bash
動作確認
seleniumu-capture.py
from selenium import webdriver url = "http://www.aozora.gr.jp/cards/000081/files/46268_23911.html" #PhantomJSのドライバを得る browser = webdriver.PhantomJS() #暗黙的な待機を最大3秒行う browser.implicitly_wait(3) #URLを読み込む browser.get(url) #画面をキャプチャしてファイルに保存 browser.save_screenshot("Website.png") #ブラウザを終了 browser.quit()
cd $HOME(コンテナのパス) python3 selenium-capture.py
実行結果
Website.pngが出来上がる