pythonで自動化

【Python×Selenium】Webスクレイピングでよく使う操作メソッドまとめ

こんにちは、うたかたです。

この記事ではpythonでseleniumを使ってブラウザ操作を自動化するためのメソッドをまとめています。

プログラムの前準備

この記事で紹介するメソッドを使用する時は以下のようにimport文とwebdriverの指定を行ってください。

from selenium import webdriver
driver = webdriver.Chrome()

seleniumとwebdriverのインストールの方法については省略します。

ブラウザの操作メソッド

指定したURLをブラウザで開く

driver.get("開きたいURL")

特定のページに遷移する時

driver.get("開きたいURL")

1つ前のページに戻る時

driver.back()

1つ先のページに進む時

driver.forward()

ブラウザを更新する時

driver.refresh()

現在開いているURLを取得する

driver.current_url

現在開いているページのタイトルを取得する

driver.title

開いているウィンドウを閉じる

driver.close()

開いているウィンドウを全て閉じる

driver.quit()

特定の要素を指定する

取得したい場所を指定する方法を紹介します。

1つ注意点として、このコマンドでは要素を指定するだけなので、テキストやURLを取得したりする時はさらにコマンドを組み合わせる必要があります。その方法については下で紹介しています。

1つだけ指定する

指定した要素を1つだけ取得するコマンドです。

idで要素を指定する

driver.find_element_by_id("ID")

class名で指定する

driver.find_element_by_class_name("class名")

cssセレクタで指定する

driver.find_element_by_css_selector("CSS selector")

xpathで要素を指定する

driver.find_element_by_xpath("Xpath")

タグ名から要素を指定する

driver.find_element_by_tag_name("tag名")

name属性で指定する

driver.find_element_by_name("name")

LinkTextの文字列の一部から指定する

driver.find_element_by_partial_link_text("LinkText文字列の一部")

LinkTextの文字列から指定する

driver.find_element_by_link_text("LinkTextの文字列")

要素を複数指定する

指定された要素を複数個取得するコマンドです。

取得した値はリスト形式で返されます。

基本的には上で紹介したコマンドを「element」→「elements」に変えるだけです。

idで要素を指定する

driver.find_elements_by_id("ID")

class名で指定する

driver.find_elements_by_class_name("class名")

cssセレクタで指定する

driver.find_elements_by_css_selector("CSS selector")

xpathで要素を指定する

driver.find_elements_by_xpath("Xpath")

タグ名から要素を指定する

driver.find_elements_by_tag_name("tag名")

name属性で指定する

driver.find_elements_by_name("name")

LinkTextの文字列の一部から指定する

driver.find_elements_by_partial_link_text("LinkText文字列の一部")

LinkTextの文字列から指定する

driver.find_elements_by_link_text("LinkTextの文字列")

指定した要素の情報を取得する

指定した要素から情報を取得するコマンドを紹介します。

このコマンドは要素1つずつにしか使えないので、リスト形式の要素に以下のコマンドをやってもエラーが発生します。

複数の要素を取得した時はリスト形式になっているので注意が必要です。

テキストを取得する

.text

使い方

driver.find_element_by_class_name("クラス名").text

この例ではクラス名で要素を指定し、その要素の文字列を取得しています。

URLを取得する

.get_attribute("href")

使い方

driver.find_element_by_class_name("class名").get_attribute("href")

この例文ではクラス名で要素を指定し、その要素のリンク先URLを取得しています。

クリックする

.click()

使い方

driver.find_element_by_class_name("class名").click()

この例ではクラス名で要素を指定し、その要素をクリックしています。

終わりに

この記事ではpythonでseleniumを使う際によく使うメソッドを紹介しました。

もし間違っているものがあれば、ご指摘ください。