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

如何用Python Selenium从指定主Div中提取所有href链接?

解决Selenium提取主Div下所有a标签href的方法

以下是几种可行的实现方案,无需关注子子Div的层级变化:

方法一:相对XPath全局匹配a标签

利用相对路径".//a"直接在主元素范围内查找所有后代a标签,不受嵌套层级影响:

# 从已获取的主元素内查找所有a标签
all_links = main_elem.find_elements(By.XPATH, ".//a")
# 提取有效href属性(过滤空值)
href_list = [link.get_attribute('href') for link in all_links if link.get_attribute('href')]

方法二:CSS选择器匹配所有a标签

CSS选择器更简洁,"a"会匹配主元素内的所有后代a标签:

all_links = main_elem.find_elements(By.CSS_SELECTOR, "a")
href_list = [link.get_attribute('href') for link in all_links if link.get_attribute('href')]

方法三:限定子子Div层级的匹配(可选)

如果仅需要提取主Div的子Div的子Div内的a标签,可使用精准相对路径:

all_links = main_elem.find_elements(By.XPATH, ".//div/div/a")
href_list = [link.get_attribute('href') for link in all_links if link.get_attribute('href')]

额外注意:等待元素加载

若遇到页面未完全加载导致的元素找不到问题,可结合WebDriverWait等待元素就绪:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待主元素内至少出现一个a标签,超时时间10秒
wait = WebDriverWait(browser, 10)
all_links = wait.until(EC.presence_of_all_elements_located((By.XPATH, ".//a")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:21:07