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

如何抓取网页中不可见的href链接?附Selenium代码问题咨询

问题分析与解决

为什么看不到href但能复制链接?

  • 链接属性是JavaScript动态生成的:页面加载完成后,网站通过JS脚本在运行时给<a>元素添加href属性。你检查页面时看到的是初始DOM状态,此时href还未被注入;但手动复制时,浏览器已经执行完JS,能获取到动态生成的href值。
  • 网站基于Salesforce Lightning框架:这类框架的很多元素属性不会直接写在静态HTML里,而是通过框架动态绑定,所以初始源码中看不到,但实际交互时元素已具备完整属性。

你的Selenium代码问题及修正

原代码的核心问题是CSS选择器错误,同时使用固定等待不够可靠,导致无法正确抓取链接。以下是修正后的代码:

import random
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15"
]

driver_path = '/users/tosh/downloads/chromedriver'
user_agent = random.choice(user_agents)
chrome_options = Options()
chrome_options.add_argument(f"user-agent={user_agent}")
driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

url = 'https://www.dataprivacyframework.gov/s/participant-search'
driver.get(url)

# 等待Inactive标签可点击后再点击
WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//*[@id="Inactive__item"]'))
).click()

# 等待所有链接元素加载完成
links = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'a.slds-text-heading_small.lgorg'))
)

link_list = []
for link in links:
    href = link.get_attribute('href')
    if href:
        link_list.append(href)

print(link_list)

driver.quit()

关键修正说明

  1. CSS选择器修正:原代码中a.slds-text-heading_small lgorg是错误写法,lgorg是元素的另一个class,正确写法是用点连接:a.slds-text-heading_small.lgorg,这样才能匹配同时拥有这两个class的链接元素。
  2. 用显式等待替代固定sleep:time.sleep是固定等待,无法适配页面加载速度差异。显式等待会等到元素满足条件(可点击/已加载)再执行操作,避免因加载慢导致的抓取失败。
  3. 过滤空href:添加判断确保只收集有效的链接,避免空值混入结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:49:55