スポンサーリンク

【Python】Python でブラウザの操作を自動化してみた

Python
たろ
たろ

Pythonでブラウザ操作する方法ってどうすればいいの?

今回はこんな悩みを解決します。

本記事の内容
  • Pythonからブラウザ操作するために必要なパッケージ
  • Pythonからブラウザを実際に操作する方法
  • 検証中のハマったポイント

調べてみるとどうやら PythonSelenium というブラウザを自動で操作するアプリケーションを使うのパターンが定番のようでした。

自身のPC上に環境構築→実装→検証の順番で紹介します。

スポンサーリンク

環境

  • MacOS
  • Chrome 86.0.4240.111
  • ChromeDriver 87.0.4280.20.0
  • Python 3.5.5
  • selenium 3.141.0

ブラウザ自動操作の環境構築

Seleniumのインストール

まずはSeleniumをインストールします。

下記のコマンドをターミナルで実行してください。

pip install selenium

ChromeDriverのインストール

次にChromeDriverをインストールします。

pip install chromedriver-binary

以上で環境は整いました。

早速サンプルコードを動かしてみます。

サンプルコード実行もうまくいかず【ハマったポイント】

まずはブラウザを立ち上げるだけのコードを実行してみると、、、

from selenium import webdriver
import chromedriver_binary

driver = webdriver.Chrome()

下記のエラーがでてきました。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 86.0.4240.111 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

どうやらChromeDriverがサポートしているバージョンは 87 のようですが、今使っているChromeのバージョンが 86 ということで整合性が取れていないようです。

ChromeDriverのバージョンを下げるか、Chromeのバージョンを上げる必要があるみたいです。

単純にChromeのバージョンをあげることはできそうなので、ChromeDriver のバージョンを下げてみます。

pip install chromedriver-binary==86.0.4240.22

ChromeDriverの細かいバージョンは下記のサイトから確認できます。

改めてサンプルコードを実行

すると今度はエラーが表示されることなくブラウザが立ち上がってきました!

すごい!!

Pythonでブラウザ検索をしてみる

ブラウザを開いてChromeにアクセスをし、「Python」と検索するコードを組み立ててみます。

下記の公式サイトの例を参考にコードを走らせてみると・・・

import time
from selenium import webdriver
import chromedriver_binary

driver = webdriver.Chrome()
driver.get('https://www.google.com/')
time.sleep(2)
search_box = driver.find_element_by_name('q')
search_box.send_keys('Python')
time.sleep(2)
search_box.submit()
time.sleep(5)
driver.quit()

Gif化がうまくいかず途切れてしまっていますがイメージこんな感じでできました。

さて、下準備は整ったのでやりたかったことに取り組んでみます。

まとめ

PythonSeleniumを使ってブラウザを操作する方法を紹介しました。

うまくブラウザが立ち上がってこない時は、バージョンを疑いましょう。

参考

Python + Selenium で Chrome の自動操作を一通り

コメント

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