Python Seleniumを初歩から解説

プログラミング

本記事ではPythonのSeleniumの使い方やバージョンによるメソッドの違いを解説します!

また、以下の書籍のSelenium部分が正しく動作しない人への解説記事にもなります!

この記事でわかること
  • Seleniumの使い方
  • バージョンによるメソッドの違い
  • ”Python 自動処理の教科書”のSelunium部分で正しく動かない原因

Seleniumはいつ使う?

SeleniumはWebブラウザの自動操縦に使用するPythonのライブラリです。

自動操縦を用いると動でブラウザを開いたり、サイトにログインしたり、Webページからデータを抽出することができます。(他のも色々できちゃいます!)

本記事ではSeleniumの使用方法やメソッド、バージョンの違いについて解説します。

Seleniumの使用方法

Seleniumのメソッド

Seleniumはver 4.3.0からメソッドが新しくなりました。
そのため使用しているバージョンがいくつなのかを確認する必要があります。

以下に新バージョンの良く使うメソッド一覧を記載します。

メソッド(ver 4.3.0以降)説明
find_element(By.ID, ‘id名’)idによる検索
find_element(CLASS_NAME, ‘class名’)classによる検索
find_element(By.TAG_NAME, ‘tag名’)タグによる検索
find_element(By.NAME, ‘name名’)name属性による検索
find_element(By.CSS_SELECTOR, ‘css_selector’)cssセレクタによる検索
find_element(By.LINK_TEXT, ‘link_text’)リンクテキストによる検索
find_element(By.PARTICAL_LINK_TEXT, ‘partical_link_text’)リンクテキストの一部による検索

※上記のメソッドでは1つの要素しか検索できません。
複数の要素を検索する場合は”find_elements(By.xxxx)としてください。

また以下に新バージョンと旧バージョンの比較表を記載します。

新メソッド(ver 4.3.0以降)旧メソッド
find_element(By.ID, ‘id名’)find_element_by_id(id名)
find_element(CLASS_NAME, ‘class名’)find_element_by_class_name(class名)
find_element(By.TAG_NAME, ‘tag名’)find_element_by_tag_name(tag名)
find_element(By.NAME, ‘name’)find_element_by_name(name)
find_element(By.CSS_SELECTOR, ‘css_selector’)find_element_by_css_selector(css_selector)
find_element(By.LINK_TEXT, ‘link_text’)find_element_by_link_text(link_text)
find_element(By.PARTICAL_LINK_TEXT, ‘partical_link_text’)find_element_by_partical_link_text(partical_link_text)

※旧バージョンで複数要素を検索する場合、”find_elements_by_xxxx(xxxx)”としてください。

Seleniumを使用する事前準備

Seleniumを使用するには以下の2つの手順を踏む必要があります。

①ライブラリをインストール
②Webドライバのインストール(今回はChrome)

①ライブラリをインストール

Seleniumのインストールはコマンドラインからpipコマンドを指定して実行します。

python3 -m pip install selenium

バージョンを指定する場合は

python3 -m pip install selenium==3.2.0

とします。

②Webドライバのインストール(今回はChrome)

まず現在使用しているブラウザのバージョンを確認します。
ブラウザのバージョンとWebドライバのバージョンが一致している必要があるからです。

Chromeの場合、画面右上にある3点マークをクリックし、”ヘルプ”→”Google Chromeについて”を選択します。
現在のバージョンが表示されます。

次に以下のサイトにアクセスし、Chromeのバージョンと一致するドライバをインストールします。
バージョンは”aaa.bbb.ccc.ddd”の場合、cccまで一致すればOKです

ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashbo...

ダウンロードしてzipファイルを解凍したら実行ファイル”chromedriver.exe”を”python.exe”があるフォルダに配置しましょう。(これが一番簡単です)

これで事前準備の完了です。

実際に使ってみる

本記事の最初に以下の書籍を紹介しまた。

こちらでもSeleniumの解説をしているんですが、Seleniumのバージョンが3.141と旧メソッドで書かれています。
そのため本記事では書籍のコードを新メソッドで書き直してみます。

書籍中のGoogle検索を自動化するプログラムをバージョン4.3.0以降のSeleniumを使用したものに書き換えます。

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()

# Googleの検索ページを表示
driver.get('https://google.com')

# 検索ボックスを探す
el = driver.find_element(By.NAME, 'q')
# キーワードを入力する
el.send_keys("Pythonの教科書")
# フォームの送信
el.submit()

time.sleep(30)
driver.close()

新バージョンで大切な点は2行目と11行目です

2行目ではByをインポートしています
これは旧バージョンではないので、注意が必要です。

11行目は新バージョンのメソッドを使用しています。
旧バージョンから新バージョンのメソッド変更は規則性があるため、慣れれば違和感がないと思います。

まとめ

本記事ではPythonのSeleniumについてまとめました。

Seleniumはブラウザを自動操縦することができるライブラリです。

バージョンによってメソッドが変わってくるので、インストールする時は注意しましょう!
(メソッドが変わるのは4.3.0以降)

以下の書籍ではSelenium以外でもスクレイピングに関する解説が多く載っています。
スクレイピング以外にもPythonを使った業務効率化手法がたくさんなのでおすすめの一冊です!

コメント

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