DockerでPythonのスクレイピング環境を簡単に構築する
2017/10/142020/11/17
IT dockerpython

以下を使用したdocker環境を構築をした。

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)

(参考)