Python

【Python】Seleniumを使おうとしてDeprecationWarningというエラー(警告)が出た件


Pythonの学習がてらWebスクレイピングをやってみようと思い、Udemyの以下の講座を申し込んでみました。

PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】

ところが、この講義の最初のところ(Seleniumを使ってWEBブラウザを開く)でいきなり躓きまくったので、備忘録としてその対処法を記載しておきます。

まず一つ目の躓きが「DeprecationWarning」というエラーです。

ネットで調べると「これは警告なので放置しても問題ない」という話もありましたが、自分の場合、この警告が出て、なおかつブラウザ自体が立ち上がりませんでした。

(後で理由はわかりましたが、この講義の中で記載されているURL経由で落としたドライバ( chromedriver.exe )のバージョンが古かったことが原因でした)

 

具体的な警告文は

<ipython-input-2-9e600ef5fd90>:1: DeprecationWarning: executable_path has been deprecated,
 please pass in a Service object
 browser = webdriver.Chrome('E:/.../chromedriver.exe')

というものです。

executable_path にドライバのパスを入れるのは非推奨なので、Serviceオブジェクトを使うように、というようなことが書いてあります。

なお、講義で説明されていた警告の出るコードは以下の通りです。 

このエラー自体は、Seleniumのバージョンが3から4に上がった際にドライバの指定の仕方が変わったために警告文が出るようになったようです。

 

ではどんな書き方をすれば警告文が出なくなるのかということですが、以下のコードで動くようになりました。

(正確には私の場合、ダウンロードしていたドライバのバージョンが古かったので、もう一段階引っかかったところがありましたが。)

ダウンロードしていたドライバのバージョンが古かったため、「SessionNotCreatedException」というエラーにも悩まされましたが、これについては別の記事で書きます。