本記事では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です!
ダウンロードして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を使った業務効率化手法がたくさんなのでおすすめの一冊です!
コメント