Python Selenium 自動化

CentOSのVPSサーバーでPython+Selenium+ChromeDriverのスクレイピング環境を構築する

この記事は約7分で読めます。

 

こんにちは、ミナピピンです。

 

先日クラウドワークスの依頼でレンタルサーバー上でSeleniumを実行してスクレイピングを行いたいという依頼をうけて、レンタルサーバー上にPythonとSeleniumでのスクレイピング環境を構築するために調査した結果をブログにまとめておこうと思います。

 

 

環境

サーバー さくらVPS

OS CentOS8(Stream8)

言語 Python3.6

webブラウザ GoogleChome

ツール Selenium

 

Google-chromeのインストール

 

$ sudo vi /etc/yum.repos.d/google-chrome.repo

 

/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

 

中身を追記したら保存して更新コマンドを叩きます。するとchromeのインストールが開始されます

 

$ sudo yum update

 

これでyum installが通るようになるので、最新版のchromeをインストールします。

 

$ sudo yum install google-chrome-stable
# バージョンを確認
$ google-chrome --version

 

↑を実行して表示されたChromeのバージョンはあとで使うので、どこかにメモしておいて下さい

 

ChromeDriverのインストール

 

次にブラウザを自動操作するためにdriverをインストールするわけですが、ここで注意点なのはドライバーのバージョンはインストールしたChromeのバージョンに合わせるという点です。

マイナーバージョンの違いでも動かなくなることがあるのでなるべく近しいバージョンを探しましょう。

GoogleGhromeのリリースの情報はここで確認できます。
バージョン一覧はここから探せます。

 

バージョンを確認したら以下のコマンドを実行します。執筆時のバージョンは96.0.4664.45ですが、恐らくこれからもバージョンアップでバージョンが変わると思うので先ほどの$ yum install google-chrome-stableでインストールしたものと同じもしくは近いバージョンのドライバーをインストールしてください。

wget https://chromedriver.storage.googleapis.com/98.0.4758.80/chromedriver_linux64.zip

$ wget https://chromedriver.storage.googleapis.com/96.0.4664.45/chromedriver_linux64.zip

 

ドライバーをインストールしたら次はZIPを解凍してプログラム上で使用できるように権限を755(全部許可)にして緩めます。これをしないとpythonのプログラム上でドライバーを操作する際にpermission errorが起こります。

 

# zip解凍コマンドが入っていない場合は最初に↓コマンドでインストールが必須
$ sudo yum -y install unzip

$ unzip chromedriver_linux64.zip
$ sudo mv chromedriver /usr/local/bin/
$ sudo chmod 755 /usr/local/bin/chromedriver
$ rm chromedriver_linux64.zip

 

Pythonのインストール

 

次はPythonをインストールします。ちなみにバージョンを指定したPythonのインストールコマンドはCentOS7と8で代わっているみたいなので注意してください。8の場合は以下のコマンドでインストールできます。

 

# Pythonをインストールする
$ sudo dnf install python36

 

インストールが確認できているか以下のコマンドで確認してください。コマンドが通ってバージョンなどが表示されていればインストールは成功しています。

 

$ python3 --version
Python 3.6.8

$ pip3 --version
pip9.0.~~~~~

 

参考:https://genchan.net/it/programming/python/12436/

 

 

スポンサーリンク
スポンサーリンク

Seleniumのインストールと動作確認

 

次はpythonのライブラリのseleniumとchromedriverをインストールします。

 

# seleniumとchromedriverをインストールする
$ pip3 install selenium
$ pip3 install chromedriver_binary

 

サンプルコードの実行

 

これで最低限の環境は整ったのでサンプルコードを実行してみます。まずはPythonのidleを立ち上げます

 

$ python3

 

これでコンソールの左端が「>>>」に変わっていればPythonのコンソールに入っています。

元のコマンドラインに戻る際はexit()で戻ることができます。

 

from selenium import webdriver

import time

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

import chromedriver_binary

options = webdriver.ChromeOptions()

options.add_argument('--headless')

options.add_argument("--no-sandbox")

driver = webdriver.Chrome(executable_path = '/usr/local/bin/chromedriver', options=options)

driver.get('https://www.google.co.jp/')

print(driver.page_source)

 

これでhtmlのページソース(~~~~~~~~~~~~~~~~~</script></body>)がprintで表示されていれば環境構築は完了です。

 

注意点としてはVPSのようなサーバーは普通のPCのようなGUIがないので、SELENIUMを使用する際はヘッドレスモードで使用しないいけないという点です。

 

関連記事:【Python】VPSサーバーでSelenium+GoogleChromeのスクレイピング環境を構築した時に遭遇したエラーまとめ

 

 

【お知らせ】

Pythonの定期実行環境構築でお悩みの方はMENTAにて環境構築及びスクリプトの定期実行に関するご相談を受け付けておりますので、お気軽にご相談ください。(招待リンクから登録すると利用料が500円割引になるのでお得です)

 

招待リンク:https://menta.work/invite/wYZXKkSpS2fg9Z3f

自分のプロフィール:https://menta.work/user/26168

 

 

参考:https://qiita.com/gano/items/f46adc5dff055baf3785

 

 

コメント

タイトルとURLをコピーしました