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

如何使用Selenium Python提取<a>元素href属性中的链接?

解决Selenium Python获取元素链接的问题

首先注意到你提供的HTML示例里,属性写的是herf(标准应为href),这很可能是你获取失败的核心原因,分两种情况处理:

情况1:HTML属性是笔误(实际应为href)

如果页面里的a标签是标准的<a href="link"...>,可以通过遍历所有a标签,调用get_attribute('href')提取链接,存入列表变量:

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

driver = webdriver.Chrome()
driver.get("目标页面URL")

# 获取所有<a>标签
a_elements = driver.find_elements(By.TAG_NAME, 'a')
# 初始化存储链接的变量
links_list = []

for elem in a_elements:
    # 提取href属性值
    link = elem.get_attribute('href')
    # 过滤空链接,避免无效值
    if link:
        links_list.append(link)

# 此时links_list中存储了所有有效链接
print(links_list)
driver.quit()

情况2:页面确实使用非标准herf属性

如果页面里的a标签就是<a herf="link"...>这种非标准写法,只需将get_attribute的参数改成'herf'即可:

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

driver = webdriver.Chrome()
driver.get("目标页面URL")

a_elements = driver.find_elements(By.TAG_NAME, 'a')
links_list = []

for elem in a_elements:
    link = elem.get_attribute('herf')
    if link:
        links_list.append(link)

print(links_list)
driver.quit()

额外注意:元素加载问题

如果页面是动态渲染的,可能需要等待元素加载完成后再提取,可使用WebDriverWait实现显式等待:

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

# 等待10秒,直到所有<a>标签加载完成
a_elements = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.TAG_NAME, 'a'))
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:05:35