Seleniumでリストやプルダウンを選択する
スクレイピングしたいとき、seleniumで操作をしてから要素を取得したいときがあります。その時、検索条件の設定などでリストやプルダウンを選択するとき、どうやって選択したらいいのかをまとめます。
ちなみに、リストというのは、以下のような選択するタイプの要素です。
インポートする
まずは、要素を選択するためのモジュールをインポートします。
1 |
from selenium.webdriver.support.ui import Select |
要素を見つける
まずは、selectのタグを見つける。
<select name=”◎◎◎”>みたいなタグを見つける。
find_element_by_name(‘タグ名’)
1 |
years = driver.find_element_by_name("year") |
要素を選択する
見つけた要素を扱えるようにSelectを行う。
1 |
years_select = Select(years) |
最後に、入力したい値を入力する。
1 |
years_select.select_by_value("2019") |
1 2 3 4 |
# selectの年度を指定する。 years = driver.find_element_by_name("year") years_select = Select(years) years_select.select_by_value("2020") |
コードの具体例
インポートはこんなにしなくてもいいが、よく使うのでインポートしたまま。
Chromeを操作する設定をして、開くURLを指定して、selectの選択を行う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select import datetime # 1.操作するブラウザ driver = webdriver.Chrome('C:/Users/oono/Downloads/chromedriver_win32/chromedriver') # 2.操作するページを開く driver.get('URL') # 年度を指定 years = driver.find_element_by_name("year") years_select = Select(years) years_select.select_by_value("2020") |
years_select.select_by_value(“ここに選択したい情報を記載する”)