You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在div标签中获取XPath?Python Selenium如何提取href和target属性

解决方案

1. 目标元素的XPath路径

你给出的HTML代码里共包含2个a标签,对应定位XPath如下:

  • 头部折叠控制a标签(父级div的id为唯一标识readHeading13),简化后可直接写://div[@id="readHeading13"]/a
  • form内的地址a标签(父级折叠内容div的id为唯一标识readCollapse13),简化后可直接写://div[@id="readCollapse13"]//form//a
    如果页面有其他同结构元素可能冲突,可以补全class、文本等特征进一步过滤,比如地址a标签还可以写成//div[@id="readCollapse13"]//span[text()="address"]/preceding-sibling::a,定位精度更高。

2. Selenium提取属性的实现代码

Selenium中使用get_attribute()方法即可提取标签的任意属性,完整示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器驱动,这里以Chrome为例
driver = webdriver.Chrome()
# 替换为实际目标页面的访问地址
driver.get("https://你要访问的页面地址")
# 加隐式等待,避免动态加载导致元素找不到报错
driver.implicitly_wait(10)

# 提取头部折叠a标签属性
collapse_a = driver.find_element(By.XPATH, '//div[@id="readHeading13"]/a')
collapse_href = collapse_a.get_attribute("href")
# 该a标签未定义target属性,取值为None
collapse_target = collapse_a.get_attribute("target")

# 提取地址a标签属性
address_a = driver.find_element(By.XPATH, '//div[@id="readCollapse13"]//form//a')
address_href = address_a.get_attribute("href")
address_target = address_a.get_attribute("target")

# 打印结果
print("折叠按钮href:", collapse_href)
print("折叠按钮target:", collapse_target)
print("地址链接href:", address_href)
print("地址链接target:", address_target)

# 关闭浏览器
driver.quit()

注意事项

  • 如果页面是异步渲染的,建议替换为显式等待定位元素,稳定性更高
  • 如果同一页面存在多个匹配的a标签,将find_element替换为find_elements,遍历返回的元素列表逐一提取属性即可

内容的提问来源于stack exchange,提问作者Vigneswaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:06:05