selenium处理下拉框

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

页面如下:

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

代码如下:

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

结果展现:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习各种软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值