CentOS7で下記のコマンドを実行すると動いていたPythonのプログラム(Selenium+WebDriverを使ったスクレイピングプログラム)が、cronで実行すると動かない問題が発生した。
python main.py
cronのエラーログを外部ファイルに出力して確認すると、以下のエラー(一部抜粋)が吐かれていた。
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
※cronのエラーログの確認方法はこちらの記事にまとめている。
今回はこの問題を解決する方法を紹介する。
chromedriver_binaryをimportして解決
調べたところ、chromedriver_binaryにパスが通っていないことがエラーの原因だった。
まずchromedriver_binaryが入っていない場合はpipでインストールしておく。
pip install chromedriver_binary
後はPythonのファイル側で下記のimport文を追記するだけでパスを通すことができる。
import chromedriver_binary
これでcronでも問題なくプログラムを実行できるようになった。