如何在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
相关产品推荐
相关产品推荐

