この記事は
CentOS上でPythonを使ってGoogleChromeの自動操作を行うための構築手順です。
CentOS上で動かすメリットは、レンタルサーバ代が安いというのと、最終的にGUI環境ではなくてもCUIのみでブラウザ操作を完了することができます。
Windows上でのPython+Seleniumの実行はたくさん例があるのですが、Linux環境での構築環境があまりなかったので記事にしてみました。
また、CentOSでも動かした例はあってもCentOS7系が多く、8系に関してはまだ情報が少なかったので、備忘としてまとめます。
7系と8系だとPython動かす時のコマンドが少し変わっていて、癖がありました。
大きい手順としては以下となります。
- CenteOS8.1のインストール
- GoogleChromeのインストール
- Pythonのインストール
- Seleniumのインストール
- ChromeDriverのインストール
- 環境変数の設定 export DISPLAY=:0
目指したい構成図
誰でも簡単にできるように、レンタルサーバ上のCentOSに動作環境を構築し、
その後は家のWindowsやMac端末からレンタルサーバ会社のコンソール接続を用いたり、SSH接続によりPythonを実行します。
基本的に構築やGUI操作がしたい場合は、各社が用意しているコンソールから接続します。
その後環境が整ったらSSH接続により、CUIのみの操作で実行できるのが簡単かと思います。
CentOS8.4のインストール
ここは、レンタルサーバを借りている人は必要のない工程なので、別記事にしています。
必要な方のみ参照して下さい。CentOS8.1のインストール
GoogleChromeのインストール
- まずはCentOSのバージョンを確認しておきます。
# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
- Google Chrome用のyumリポジトリを作成します。
vi /etc/yum.repos.d/google.chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
- yum update
# yum -y install google-chrome-stable
- GoogleCromeインストール
# yum -y install google-chrome-stable
- Chromeのバージョン確認
# google-chrome --version
Google Chrome 73.0.3683.86
- GUI無しのヘッドレスモードで動作確認
# google-chrome --headless --no-sandbox --dump-dom https://www.google.com/
Pythonコマンド
- pythonコマンドの実行パスを変更する
# sudo alternatives --config python
There are 2 programs which provide 'python'.
Selection Command
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3
Enter to keep the current selection[+], or type selection number: 2
参考サイト
CentOS7でSelenium+Pythonを動かすまで
https://qiita.com/mindwood/items/245adeb6da18999bbfc4
リモートからpythonコマンドを実行できるようにする
$ export DISPLAY=:0