
本文介绍如何利用 selenium 4.8 配合显式等待和 xpath 定位,从嵌套 html 列表(`
在 Web 自动化与数据采集场景中,精准定位并提取结构化链接是常见需求。当目标链接深嵌于多层容器(如
0
0

本文介绍如何利用 selenium 4.8 配合显式等待和 xpath 定位,从嵌套 html 列表(`
在 Web 自动化与数据采集场景中,精准定位并提取结构化链接是常见需求。当目标链接深嵌于多层容器(如
以下为完整、健壮的实现方案:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
# 初始化 WebDriver(以 Chrome 为例)
chrome_options = Options()
chrome_options.add_argument("--headless") # 无头模式,可选
driver = webdriver.Chrome(options=chrome_options)
try:
driver.get("https://example.com") # 替换为目标网址
# 显式等待:最多等待 25 秒,直到所有匹配的 元素出现在 DOM 中
wait = WebDriverWait(driver, 25)
link_elements = wait.until(
EC.presence_of_all_elements_located(
(By.XPATH, '//li//h4[@class="programme titles"]/a[@class="br-blocklink__link"]')
)
)
# 提取所有 href 属性,过滤掉 None 值(避免空链接)
href_list = [elem.get_attribute("href") for elem in link_elements if elem.get_attribute("href")]
print(f"成功提取 {len(href_list)} 个有效链接:")
for i, url in enumerate(href_list, 1):
print(f"{i}. {url}")
# 后续可遍历处理每个链接,例如:
# for url in href_list:
# driver.get(url)
# # ... 解析详情页内容
finally:
driver.quit() # 确保资源释放✅ 关键要点说明:
⚠️ 注意:Selenium 不适用于大规模静态爬取(推荐 Requests + BeautifulSoup);若目标网站反爬严格,请配合 User-Agent 轮换、合理延时及遵守 robots.txt。
立即学习“Python免费学习笔记(深入)”;
相关文章
html5静态网页怎么调用API_跨域请求处理方法【技巧】
如何搜索html_搜索本地或网页HTML文件的方法【指南】
html5后台怎么安装_HT5是前端技术无后台安装需配后端环境【说明】
html如何word_HTML内容转换为Word文档的步骤【详解】
HTML5注释怎么批量替换_用正则批量修改注释内容的方法【详解】
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。
745
2023.06.15
python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。
757
2023.07.25
Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。
617
2023.07.31
Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。
547
2023.08.04
eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。
577
2023.08.04
scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。
705
2023.08.11
热门下载
相关下载
精品课程
最新文章
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号