以下を使用したdocker環境を構築をした。
- Python3
- Headless Chrome
- Selenium
- MySQL
Headless Chromeが出たことでPhantomJSの開発も終了したため今後はHeadless Chromeを使っていこうと思う。
手順
いずれもdocker hostで実行する。
dockerの立ち上げまで
1
2
3
4
git clone https://github.com/eidera/python-scraping.git
cd python-scraping/docker
sh ./start.sh
cd ..
スクレイピング用のバッチの起動
1
sh ./run.sh
上記コマンドを実行することで run.py
が実行される。
dockerの終了
1
2
3
cd docker
sh ./stop.sh
cd ..
Headless Chromeのオプション
以下のように設定した(libs/screen.py)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
options = Options()
options.add_argument('--no-sandbox') # need in docker
options.add_argument('--headless')
options.add_argument('--disable-gpu')
# エラーを無視
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-running-insecure-content')
options.add_argument('--disable-web-security')
# Headlessでは不要そうな機能を無効にする
options.add_argument('--disable-desktop-notifications')
options.add_argument("--disable-extensions")
options.add_argument('--lang=ja')
# 画像を読み込まないで高速化
options.add_argument('--blink-settings=imagesEnabled=false')
# ウィンドウズサイズの指定
options.add_argument('--window-size=1280,1024')
driver = webdriver.Chrome(chrome_options=options)
(参考)