Centosにpythonとchromedriver

Overview

Input

https://worklog.be/archives/3422#ChromeDriver https://worklog.be/archives/3402

Proccess

何よりも。。。これがまず超絶大事

諦めないこと、逃げ出さないこと、それが一番大事。戸村さんを思い出す。元気かな。
この組み合わせどおりにしないとunknown errorになる。
ちなみに、、、
* driver80.0.3987.106
* driver-binaryが80.0.3987.16
というちょう微妙なマイナーバージョンのズレで1時間調べまくった。。
トホホ。
これが一番大事

chromeインストール

バージョン超大事:80ね。

$curl https://intoli.com/install-google-chrome.sh | bash
$google-chrome --version
Google Chrome 80.0.3987.122

chrome driver

バージョン超大事:Chrome80だから:80.0.3987.106ね。

#yum -y install libX11 GConf2 fontconfig
#wget https://chromedriver.storage.googleapis.com/80.0.3987.106/chromedriver_linux64.zip
#unzip chromedriver_linux64.zip
#mv chromedriver /usr/local/bin/
#chmod 755 /usr/local/bin/chromedriver
#chromedriver --version
chromedriver: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by chromedriver)
chromedriver: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by chromedriver)

#wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm
#wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm
#wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm
#wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm
#rpm -Uvh glibc-2.17-55.el6.x86_64.rpm \
#glibc-common-2.17-55.el6.x86_64.rpm \
#glibc-devel-2.17-55.el6.x86_64.rpm \
#glibc-headers-2.17-55.el6.x86_64.rpm

#chromedriver --version
ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882})

pyenv

Pythonの環境を整える。

3.7はopenssl依存してて、opensslはapacheと癒着してて。
apache周りはブログ壊すの怖いのでそっとしておく。
という中で
3.4系でどうよと思ったんだけど、「requests」が3.5以降っていわれて
結果として3.6に落ち着いた(アレヤコレヤと試した結果)

$sudo yum -y install gcc bzip2 bzip2-devel openssl openssl-devel readline readline-devel sqlite-devel tk-devel git
$sudo git clone git://github.com/yyuu/pyenv.git /usr/local/pyenv
$sudo mkdir {versions,shims}
$cd plugins
$sudo git clone git://github.com/yyuu/pyenv-virtualenv.git
$sudo git clone git://github.com/yyuu/pyenv-update.git
$su -
#echo 'export PYENV_ROOT="/usr/local/pyenv"' >> /etc/profile.d/pyenv.sh
#echo 'export PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"' >> /etc/profile.d/pyenv.sh
$sudo pyenv install -v 3.6.0
$pyenv versions
*system (set by /usr/local/pyenv/version)
 3.6.0
となっているので、確認してみると、、
$python --version
Python 2.6.6
になっている。2系使わん。ので、
$sudo pyenv global 3.6.0
$pyenv versions
 system
* 3.6.0 (set by /usr/local/pyenv/version)
$ python --version
Python 3.6.0

module群(chromedriver_binary)

あえて分けて書く。

バージョン超大事:Chrome80だから:80.0.3987.106ね。

# pip install chromedriver_binary== 80.0.3987.106

module群

(警告でててきになったので) まずは su -でpip自体の更新

#pip install --upgrade pip
#pip install requests
#pip install selenium
#pip install bs4

Output

動いてくれた。。。

バージョン大事

Mac環境でバージョンがことなっても動いているようだったのでマイナーバージョン
レベルの差異は気にしておらず、一発目はMacと同じ環境で試すもだめ。
プログラムに問題があるのかとheadlessのオプションを一つ一つコメントアウトして実行して。。
それでもだめでふと先日のバージョン合わないとだめ問題を気にしてみたら
そもそもダウンロードサイトに組み合わせがちゃんと書いてあって。。
その後まさかのマイナーバージョンが106と16という奇跡的に間違えやすいバージョンに
ハマってしまい、、1時間近く持ってかれた。
エラーは、

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
とでた。unknown errorとか心に悪い。


  • Centosのcronの設定 Next