selenium处理下拉框

当想要爬取的数据由下拉框来选择时,应该如何处理?

页面如下:

selenium处理下拉框_第1张图片

目的获得电影的详细信息,包括票房,上映日期等。

代码如下:

from selenium import webdriver
from selenium.webdriver.support.select import Select  # 下拉列表
import time
import parsel
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
url = 'https://www.endata.com.cn/BoxOffice/BO/Year/index.html'
browser.get(url)
sel = browser.find_element_by_xpath('//*[@id="OptionDate"]')
sel_new = Select(sel)   # 定位下拉列表
print(sel_new.options)   # 获取下拉列表的所有选项
print(len(sel_new.options))
for i in range(len(sel_new.options)):  # 根据位置切换下拉框0,1,2,3,4...
    sel_new.select_by_index(i)
    time.sleep(2)
    # 切换完了之后抓数据
    i = 2023-i
    print(f'以下是第{i}年的电影数据')
    title_list = browser.find_elements_by_css_selector('tbody .movie-name a p')
    total_list = browser.find_elements_by_css_selector('tbody  tr td:nth-child(4)')
    year_list = browser.find_elements_by_css_selector('tbody  tr td:nth-child(8)')
    for title,total,year in zip(title_list,total_list,year_list):
        print(title.text,total.text,year.text)
    break

结果展现:

selenium处理下拉框_第2张图片

你可能感兴趣的:(selenium,测试工具)