Selenium Python遍历指定div内a标签并获取href链接的方法
问题背景
需求为遍历指定div元素内的所有锚点(a)元素,提取该div下所有a标签的链接,目标HTML结构如下:
<div class="List"> <a class="selected" href="link">text 1</a> <a class="hoverable activable" href="link">text 2</a> <a class="hoverable activable" href="link">text 3</a> <a class="hoverable activable" href="link">text 4</a> </div>
此前通过CSS选择器匹配包含特定字符串的href属性定位元素,因不同页面href属性值动态变化,该方案无法适配全量页面,原有问题代码如下:
lists = driver.find_elements(By.CSS_SELECTOR,'a[href*="dzdzdzd"]') s_links = [] for i in lists : s_links.append(i.get_attribute('href'))
正确实现方案
核心逻辑为先锁定目标父级div容器,再在容器范围内检索所有a标签,不需要依赖href或a标签的class特征,适配性更强。
可直接运行的代码:
from selenium.webdriver.common.by import By # 定位class为List的目标div容器 list_container = driver.find_element(By.CSS_SELECTOR, "div.List") # 在容器范围内查找所有a标签 a_tags = list_container.find_elements(By.TAG_NAME, "a") s_links = [] for tag in a_tags: href = tag.get_attribute("href") # 过滤无href属性的空标签 if href: s_links.append(href)
方案优势
- 查找范围被严格限制在目标div内部,不会抓取页面其他区域的a链接
- 不依赖href的固定内容、a标签的class属性,只要父div的定位规则稳定,就能兼容所有同结构页面
- 增加了空值判断,避免无href的a标签向结果列表写入None值
内容的提问来源于stack exchange,提问作者Amine Amine
相关产品推荐
相关产品推荐

