如何用Python Selenium提取同class名元素内的指定文本与链接
解决方案
你可以先获取所有class_name类的div元素,再逐个遍历每个div,在局部范围内提取目标内容。以下是具体实现代码:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("你的目标网页URL") # 获取所有class为class_name的div节点 div_list = driver.find_elements(By.CLASS_NAME, "class_name") for div in div_list: # 提取h3标签内a的文本内容 title_text = div.find_element(By.XPATH, ".//h3/a").text # 提取同级的a标签链接(排除h3下的a) target_href = div.find_element(By.XPATH, ".//a[not(ancestor::h3)]").get_attribute("href") print(f"标题: {title_text}, 目标链接: {target_href}") driver.quit()
关键说明
- XPath前加
.表示仅在当前div节点范围内查找,避免全局搜索导致的元素混淆,这是实现精准提取的核心。 - 若偏好CSS选择器,也可以替换成以下写法:
title_text = div.find_element(By.CSS_SELECTOR, "h3 > a").text target_href = div.find_element(By.CSS_SELECTOR, "a:not(h3 a)").get_attribute("href")
内容的提问来源于stack exchange,提问作者eth
相关产品推荐
相关产品推荐

