はじめに
Pythonでスクレイピングをしていると、「プルダウンメニュー(セレクトボックス)の値を自動で選択したい」と感じることがあります。
今回は、私がその機能を実装するにあたり調べた内容と、実際に動作させた方法をご紹介いたします。
HTML構造からプルダウンの要素を探す
まずは、操作したいWebページのHTMLを確認します。
対象のセレクトボックスは、通常以下のような形で記述されています。
<select id="ticket_id_8181">
<option value="1">〇〇</option>
<option value="2">△△</option>
</select>
この場合、id="ticket_id_8181"の部分が操作対象になります。idだけでなく、nameやclass属性が使われている場合もあるため、自分が対象としたいフォームの構造をブラウザの開発者ツールなどで確認しておく必要があります。
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クラスを利用して処理を行うようにしましょう。
少しでも参考になれば幸いです。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
