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でも問題なくプログラムを実行できるようになった。