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

Python Selenium 获取网页a标签href链接时报错如何解决?

问题根因

你当前定位到的元素是class="ssi-facebook"的<li>节点,而href属性是该<li>节点下子<a>节点的属性,直接对<li>节点调用get_attribute('href')无法获取到目标链接。

修复方案

方案1:直接定位到带href属性的a标签

通过CSS选择器直接定位目标元素,省去二次查找的步骤:

elems = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located(
        (By.CSS_SELECTOR, 'li.ssi-facebook > a')))
links = [elem.get_attribute('href') for elem in elems]
print(links)

方案2:先定位li标签再查找子元素

如果需要先获取li标签做其他操作,可以先定位li,再从li下查找a标签取属性:

elems = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located(
        (By.CLASS_NAME, 'ssi-facebook')))
links = []
for elem in elems:
    # 查找li下的a标签
    a_elem = elem.find_element(By.TAG_NAME, 'a')
    links.append(a_elem.get_attribute('href'))
print(links)

兼容异常场景

如果存在部分ssi-facebook类的li下没有a标签的情况,可以增加异常捕获避免程序中断:

elems = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located(
        (By.CLASS_NAME, 'ssi-facebook')))
links = []
for elem in elems:
    try:
        a_elem = elem.find_element(By.TAG_NAME, 'a')
        links.append(a_elem.get_attribute('href'))
    except:
        # 没有找到a标签时跳过该元素
        continue
print(links)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:27:01