スクレイピングでプルダウンの値を操作する方法【Python × Selenium】

目次

はじめに

Pythonでスクレイピングをしていると、「プルダウンメニュー(セレクトボックス)の値を自動で選択したい」と感じることがあります。
今回は、私がその機能を実装するにあたり調べた内容と、実際に動作させた方法をご紹介いたします。


HTML構造からプルダウンの要素を探す

まずは、操作したいWebページのHTMLを確認します。
対象のセレクトボックスは、通常以下のような形で記述されています。

<select id="ticket_id_8181">
  <option value="1">〇〇</option>
  <option value="2">△△</option>
</select>

この場合、id="ticket_id_8181"の部分が操作対象になります。
idだけでなく、nameclass属性が使われている場合もあるため、自分が対象としたいフォームの構造をブラウザの開発者ツールなどで確認しておく必要があります。


Pythonでプルダウンを操作する実装例

実際に使用したコード

以下は、Seleniumを使ってプルダウンの選択肢を変更するコードです。

from selenium.webdriver.support.ui import Select

id_element = browser.find_element_by_id("ticket_id_8181")
element_select = Select(id_element)
element_select.select_by_value("1")

各行の解説

  • 1行目Selectクラスをインポートします。これは<select>タグを扱うために必要です。
  • 2行目:対象の要素をIDで取得します。ここでは変数browserが、既にページを開いている状態を想定しています。
  • 3行目:取得した要素をSelectオブジェクトとしてラップします。
  • 4行目value="1"の選択肢を選びます。select_by_value()の引数には、HTML上のoptionタグのvalue属性を指定します。

注意点と補足

  • select_by_value()は、<option>タグのvalue属性と完全に一致する文字列を指定する必要があります。誤字や全角・半角の違いに注意してください。
  • Seleniumのバージョン4以降では、find_element_by_id()などのメソッドは非推奨となっているため、以下のように書き換えるのが推奨されます。
from selenium.webdriver.common.by import By
element = browser.find_element(By.ID, "ticket_id_8181")
  • サイトによってはJavaScriptでプルダウンが生成されるため、適切なタイミングでの処理実行(明示的な待機など)も重要になります。

まとめ

Seleniumを使えば、PythonでWebページ上のプルダウンを簡単に操作できます。
フォームの自動選択、検索条件の自動入力など、実務にも活用できる場面は多くあります。

HTML構造をよく確認し、対象要素を正確に指定したうえで、Selectクラスを利用して処理を行うようにしましょう。
少しでも参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次