如何使用Selenium Python获取表格内a标签的href属性值?
如何用Selenium Python从指定HTML表格提取所有标签的href属性
需求
从下方id为hospitals的HTML表格中,提取所有<a>标签的href属性内容,目标结果为:
/vehicles/1798010/patient/796603/vehicles/1798010/patient/548340/vehicles/1798010/patient/516133
目标HTML结构
<table class="table table-striped" id="hospitals"> <tbody><tr> <td> </td> </td> <td> <a href="/vehicles/1798010/patient/796603" class="btn btn-success">Trasporta paziente</a> </td> </tr> <tr> <td> <a href="/vehicles/1798010/patient/548340" class="btn btn-success">Trasporta paziente</a> </td> </tr> <tr> <td class="hidden-xs"> <span class="label label-warning">No</span> </td> <td> <a href="/vehicles/1798010/patient/516133" class="btn btn-success">Trasporta paziente</a> </td> </tr> </tbody></table>
解决方案
实现步骤
- 定位目标表格内的所有目标
<a>标签; - 遍历标签提取
href属性值。
完整代码
from selenium import webdriver from selenium.webdriver.common.by import By # 初始化Chrome驱动(需提前配置好ChromeDriver环境) driver = webdriver.Chrome() # 加载目标页面,替换为实际页面的URL driver.get("https://your-target-page.com") # 精准定位表格内的所有.btn.btn-success类的<a>标签 target_links = driver.find_elements(By.CSS_SELECTOR, "#hospitals a.btn.btn-success") # 提取所有href属性值(如果需要相对路径,处理方式见注释) href_values = [] for link in target_links: full_href = link.get_attribute("href") # 如果返回的是绝对路径,提取相对路径部分 relative_href = full_href.replace(driver.current_url, "") href_values.append(relative_href) # 输出结果 for href in href_values: print(href) # 关闭浏览器 driver.quit()
代码说明
- 定位逻辑:使用CSS选择器
#hospitals a.btn.btn-success,限定在id为hospitals的表格范围内,只抓取带有btn btn-success类的<a>标签,避免误匹配页面其他元素。 - href处理:Selenium的
get_attribute("href")默认返回绝对路径,通过替换当前页面URL可以得到需要的相对路径;如果页面本身返回的就是相对路径,直接用link.get_attribute("href")即可。 - 结果验证:运行代码后会输出你需要的三个相对路径值。
内容的提问来源于stack exchange,提问作者Spino
相关产品推荐
相关产品推荐

