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

使用Selenium选取div下h2内的链接及遍历子div链接

我来帮你搞定这两个Selenium嵌套元素定位的问题,都是日常爬取或自动化测试里的常见场景,直接上实用方案~

问题1:选取嵌套在div元素下的h2元素内的链接

对付这种层级嵌套的元素,用CSS选择器或者XPath都能轻松搞定,给你两种常用方案:

方案1:CSS选择器(推荐,语法简洁)

按照元素的层级关系写选择器就行,比如你的HTML结构大概是这样:

<div>
  <h2>
    <a href="https://example.com">目标链接</a>
  </h2>
</div>

直接用 div h2 a 就能定位到这个链接;如果div或h2有类名/ID,还可以写得更精确,避免误定位,比如 div.page-container h2.section-title a。

Python代码示例:

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

driver = webdriver.Chrome()
# 定位单个目标链接
target_link = driver.find_element(By.CSS_SELECTOR, "div h2 a")
# 如果有多个同结构的链接,用find_elements获取列表
all_links = driver.find_elements(By.CSS_SELECTOR, "div h2 a")

方案2:XPath(灵活适配复杂场景)

XPath适合需要结合元素属性或文本定位的场景,推荐用相对路径,比绝对路径更稳定:

# 基础相对路径定位
target_link = driver.find_element(By.XPATH, "//div//h2//a")
# 带属性的精确定位(比如div的class为content,h2文本为"公司介绍")
target_link = driver.find_element(By.XPATH, "//div[@class='content']//h2[text()='公司介绍']//a")
问题2:遍历'company-name' div下的每个子div并选取其中的链接

既然你已经拿到了整个company-name div,有两种思路可以实现需求:

思路1:先遍历子div,再逐个提取链接

先获取company-name下的所有子div,再循环每个子div定位内部的a标签,适合需要对子div做额外处理的场景:

# 假设你已经获取了company_name_div
company_name_div = driver.find_element(By.CLASS_NAME, "company-name")

# 获取所有直接子div
child_divs = company_name_div.find_elements(By.TAG_NAME, "div")

# 遍历每个子div提取链接(加异常处理避免无链接时报错)
for div in child_divs:
    try:
        link = div.find_element(By.TAG_NAME, "a")
        print("链接地址:", link.get_attribute("href"))
        print("链接文本:", link.text)
    except:
        print("当前子div中没有链接")

思路2:直接批量获取所有目标链接(更高效)

不用手动遍历子div,直接用CSS选择器定位company-name下所有子div里的a标签,一步到位:

# 直接获取所有符合条件的链接(>表示只找直接子div里的链接,去掉>则包含所有后代div)
all_company_links = driver.find_elements(By.CSS_SELECTOR, "div.company-name > div a")

# 遍历所有链接
for link in all_company_links:
    print("链接地址:", link.get_attribute("href"))
    print("链接文本:", link.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:52:46