使用 Python Selenium 提取动态生成下拉选项

这篇具有很好参考价值的文章主要介绍了使用 Python Selenium 提取动态生成下拉选项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 Python Selenium 提取动态生成下拉选项

在进行网络数据采集和数据分析时,处理动态生成的下拉菜单是一个常见的挑战。Selenium是一个强大的Python库,可以让你自动化浏览器操作,比如从动态生成的下拉菜单中选择选项。这是一个常见的网页爬虫和数据收集者面临的挑战,但是Selenium让它变得简单。

  • 你可以使用Select类来从下拉元素中选择你想要的选项,你可以通过它的ID或类名来定位下拉元素。这样,你就可以快速地访问动态的选项,并选择你需要的那个进行分析。
  • Selenium具有功能和灵活性,可以无缝地与网站交互,并高效地收集和处理数据。
  • Selenium支持多种浏览器和操作系统,可以适应不同的环境和需求。

使用Selenium选择下拉菜单中的选项只需要以下几个步骤:

  1. 导入必要的模块,如from selenium import webdriverfrom selenium.webdriver.support.ui import Select
  2. 创建一个webdriver实例,如driver = webdriver.Chrome()
  3. 导航到有下拉菜单的网站,如driver.get("https://example.com")
  4. 通过ID或类名定位下拉元素,如drop_down = driver.find_element_by_id("drop-down-id")
  5. 从下拉元素创建一个Select对象,如select = Select(drop_down)
  6. 通过可见文本、value属性或索引选择一个选项,如select.select_by_visible_text("Option 1")select.select_by_value("option-1")select.select_by_index(0)

下面是demo示例:

import time
from bs4 import BeautifulSoup
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 亿牛云 爬虫代理加强版 
# 根据代理IP认证信息创建一个包含代理主机、端口、用户名和密码的字典
proxy_auth = {
    'username': '16YUN',
    'password': '16IP',
    'proxyHost': 'www.16yun.cn',
    'proxyPort': '31111'
}

# 设置爬虫代理加强版的代理IP选项
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server=http://{proxy_auth["username"]}:{proxy_auth["password"]}@{proxy_auth["proxyHost"]}:{proxy_auth["proxyPort"]}')

# 创建浏览器驱动并设置代理IP选项
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
driver.maximize_window()
# 设置需要采集的URL
driver.get("https://example.com")

# 使用显式等待,等待下拉菜单元素加载和可见
wait = WebDriverWait(driver, 10)
dropdown = wait.until(EC.visibility_of_element_located((By.ID, "MainContent_routeList_chosen")))

# 查找活动结果元素
find_route_takin = driver.find_element(By.CLASS_NAME, "active-result")

# 创建Select对象并选择下拉菜单选项
select_route = Select(find_route_takin)
select_route.select_by_visible_text("565 - Grand Avenue")

# 延时等待
time.sleep(20)

这段代码的目的是打开一个网页并选择指定的下拉菜单选项,然后等待一段时间。具体网页和下拉菜单的功能和目的需要根据实际情况来确定。文章来源地址https://www.toymoban.com/news/detail-492735.html

到了这里,关于使用 Python Selenium 提取动态生成下拉选项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium 选定ul-li下拉选项中某个指定选项

    场景 :selenium的下拉选项是ul-li模式,选定某个指定的选项。

    2024年02月12日
    浏览(34)
  • html 动态设置下拉选项

            在HTML中,如果你想动态设置下拉选项(`select`元素中的`option`),你可以使用JavaScript。以下是一个示例,展示了如何使用JavaScript来动态添加下拉选项:                    在这个例子中,我们首先获取了select元素,然后创建了两个新的option元素,并设置了

    2024年02月20日
    浏览(41)
  • Python-爬虫、自动化(selenium,动态网页翻页,模拟搜索,下拉列表选择、selenium行为链)

    selenium是一个Web自动化测试工具,可以直接运行在浏览器上·支持所有主流的浏览器.可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,基础页面截图等。 使用pip install selenium命令下载selenium模块。 运行下列代码: 说明没有下载对应浏览器的驱动,这里使用谷歌

    2024年02月01日
    浏览(72)
  • Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

    今天在做练习题的时候,发现几个问题捣鼓了好久,写下这篇来记录   对于这种拥有二级框的选项无法定位,也不是select属性. 我们查看下HTML,发现它是被单独封装在body内拥有动态属性的独立div,当窗口点击的时候才会触发.     这个日历和上一个问题一样,也是被单独封装在最后的

    2024年02月05日
    浏览(42)
  • python爬虫之selenium下拉滚动示例

    首先,我们需要明确,在许多网站的滚动页面加载新的内容的时候,是需要进行下拉操作的。这就使得我们需要使用selenium来模拟用户的下拉操作以获取更多的数据。 在selenium中,我们需要引入webdriver库和Keys类。webdriver是一个浏览器自动化驱动程序,而Keys类则用于模拟键盘事

    2024年02月16日
    浏览(44)
  • python爬虫selenium操作下拉框详解

    使用python爬虫的selenium操作网页的下拉框。 以该网站为例:https://www.17sucai.com/pins/demo-show?id=5926 该网页下存在多个可供测试的下拉框。 基本脚手架代码: 定位下拉框(以第一个下拉框为例) Select()方法 不推荐这样定位 选中下拉框,点击 第一个下拉框的可选值如图所示 选择

    2024年02月11日
    浏览(51)
  • Python爬虫基础(三):使用Selenium动态加载网页

    Python爬虫基础(一):urllib库的使用详解 Python爬虫基础(二):使用xpath与jsonpath解析爬取的数据 Python爬虫基础(三):使用Selenium动态加载网页 Python爬虫基础(四):使用更方便的requests库 Python爬虫基础(五):使用scrapy框架 (1)Selenium是一个用于Web应用程序测试的工具。

    2024年02月06日
    浏览(59)
  • 使用selenium解决非下拉框问题

    一般下拉框有两种,一种是Select的下拉框,另一种就是input  的元素。 所以用Select下拉框去定位非下拉框的元素会弹出:Message: Select only works on select elements, not on input   意思就是Select只对Select有效,说明这就不是一个正常的下拉框,而是input下拉框. 下面是我解决非下拉框的

    2024年02月17日
    浏览(36)
  • 100天玩转python——day67 使用Selenium抓取网页动态内容

    根据权威机构发布的全球互联网可访问性审计报告,全球约有四分之三的网站其内容或部分内容是通过JavaScript动态生成的,这就意味着在浏览器窗口中“查看网页源代码”时无法在HTML代码中找到这些内容,也就是说我们之前用的抓取数据的方式无法正常运转了。解决这样的

    2024年02月09日
    浏览(56)
  • Android点选下拉列表框选项,获取选项内容

    的作者做的一个项目,通过app来监测设备是否在线状态,这时就需要实现分别查询“在线”、“离线”、“全部”三种选项的设备情况。也就是要能实现根据在线与否的状态来对设备进行筛选。 要对数据表中数据进行筛选,经常用到下拉列表框来设定选项,当点选不同选项时

    2023年04月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包