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

如何用Python Selenium获取LinkedIn兴趣页a标签的href并点击?

问题解决:获取LinkedIn关注公司的href并点击

核心原因

你之前输出元素文本而非href,是因为直接调用了element.text——这是获取元素的显示文本内容,而href是a标签的属性值,必须用get_attribute('href')来提取。

至于之前用By.PARTIAL_LINK_TEXT和含文本的XPATH失败,主要是LinkedIn页面的特性导致:

  • 页面元素是动态渲染的,可能你定位时元素还没加载完成;
  • 公司名称通常嵌套在a标签的子节点(如<span>)里,而非a标签本身的文本,导致基于文本的定位方法找不到目标元素;
  • LinkedIn的class、id等属性经常动态生成,靠文本或不稳定属性定位容易失效。

解决方案

步骤1:用显式等待确保元素加载

LinkedIn页面加载慢,必须用显式等待代替硬等待,保证目标元素已渲染完成。

步骤2:用结构型选择器定位a标签

放弃依赖文本的定位方式,改用基于页面结构的XPATH或CSS选择器,比如通过公司卡片容器+href包含company(LinkedIn公司页URL都带这个关键词)来定位。

步骤3:提取href并执行点击

先收集所有href(避免页面跳转后元素失效),再逐个处理点击。

代码示例

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("https://www.linkedin.com/in/你的用户名/interests/")

# 需确保已登录LinkedIn,可提前手动登录或添加登录逻辑

# 显式等待公司列表加载完成,XPATH需根据实际页面调整(F12查看元素结构)
wait = WebDriverWait(driver, 15)
# 定位所有公司卡片中的a标签(href含company)
company_link_elements = wait.until(EC.presence_of_all_elements_located(
    (By.XPATH, "//div[contains(@class, 'interest-card__content')]//a[contains(@href, '/company/')]")
))

# 先收集所有href到列表
company_hrefs = [link.get_attribute('href') for link in company_link_elements]

# 遍历href并点击(用新窗口打开避免当前页面跳转后元素丢失)
for href in company_hrefs:
    print(f"公司链接:{href}")
    # 新窗口打开链接
    driver.execute_script("window.open(arguments[0]);", href)
    # 如果要在当前窗口打开,直接用driver.get(href),但会中断遍历,需重新加载兴趣页

关键细节说明

  • get_attribute('href'):专门用于提取元素的属性值,这是你之前忽略的核心点;
  • 显式等待presence_of_all_elements_located:等待所有目标元素加载完成,避免动态渲染导致的定位失败;
  • 结构型XPATH:比如//div[contains(@class, 'interest-card__content')]定位公司卡片容器,再找内部的a标签,比文本定位稳定得多;
  • 新窗口打开:直接点击link.click()会导致当前页面跳转,后续元素会变成"过时元素"(StaleElementReferenceException),所以先收集所有href再用JS打开新窗口更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:45:49