本記事ではPythonでSelenium(セレニウム)を使うときの準備内容について、まとめてご紹介していきます。
本記事に必要な前提知識
複数のライブラリをインポートする関係上、インポートに関する知識は前提となります。
【Python】パッケージやモジュールをインポートする時の基本知識まとめ! - TomoGのごちゃまぜ倉庫
実際のソースコード
gistdfd6d7f8df47ddee2e237f040d2f44a5
上記のプログラムを実行したら、開きたいページがChromeで開かれると思います。
今回はあくまで導入部分となっているため、その他の処理は行っていません。
導入ライブラリ
・Selenium
・webdriver-manager
上記の2つ導入しています。
エラーまとめ
ここからは、先ほどご紹介したプログラムに辿り着く前に行ったエラーなどをまとめていきます。
同じようなエラーに当たった時、対処の参考にして頂けたら幸いです。
ケース1:'str' object has no attribute 'capabilities'
Seleniumを導入する時に起こるエラーとして、【'str' object has no attribute 'capabilities'】と表示されるケースがあります。
この場合、上記のリンクの通り現在のSeleniumのバージョンでは、動作しない方法を利用しているからです。
より具体的には下記のプログラムを使用している可能性があります。
- driver = webdriver.Chrome("chromedriver.exeのパス")
上記の場合、下記のように変更すると問題は解決すると思われます。
- cService = webdriver.ChromeService(executable_path="chromedriver.exeのパス")
- driver = webdriver.Chrome(service=cService)
ケース2:Message: Unable to locate or obtain driver for chrome; For documentation on this error, please visit:(URL)
ケース1のエラーを解決した時、このエラーが出てくる場合があります。
筆者は上記のURLを表示されました。
このエラーは、【driverが見つからない】時に出てくるエラーであり、最新のdriverを導入とパスの確認をしてください。
webdriver-managerを使えば、常に最新かつパスが挿入されるため、このエラーは出てこなくなります。
ケース3:Message: session not created: This version of ChromeDriver only supports Chrome version・・・
このケースはChromeDriverとChromeのバージョンが合っていないことが原因で起こります。
Chromeの更新頻度は非常に高く、そのたびにChromeDriverをダウンロードするのはかなり非効率です。
これもwebdriver-managerを使えば解決するようになっているため、こちらを使うことをおすすめします。
参考記事
Webスクレイピングについての知識は、上記のサイトが分かりやすいです。
Chrome Driverを自動更新しない場合、上記の記事が参考になります。
自動更新する場合、インストールしなくても問題ないと思われます。
上記の2つの記事を参考に、本記事ではプログラムを作成しています。
webdriver-managerの公式ドキュメントは上記のサイトです。
インストール方法もこちらに記載されています。
本記事の内容は以上となります。
ソースコードだけ見ると、かなり短く簡単そうな内容に見えるでしょう。
しかし、このソースコードに至るまでに様々なエラーが出ては対処していたため、同じようなエラーが出た時はぜひ参考にしてみてください。
本記事は以上です。お疲れさまでした。