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

如何用BeautifulSoup循环获取指定嵌套div内的a标签链接

解决方法

你的代码存在两个关键问题,导致无法正确提取目标链接:

  1. 直接遍历父div(a)时,会包含空白文本节点(比如换行符),这类节点没有find_all方法,会引发运行错误;
  2. find_all()返回的是结果列表,不能直接调用.find()方法,需要遍历列表内的元素。

修正后的分步定位代码

# 定位目标父div
parent_div = soup.find('div', class_="brandGroup choose_a")
# 获取父div下所有class为brandChild的子div
brand_children = parent_div.find_all('div', class_="brandChild")
# 遍历每个子div,提取a标签的链接
for child in brand_children:
    link = child.find('a')
    if link:  # 容错处理,避免HTML结构异常时报错
        print(link.get('href'))

更简洁的CSS选择器方案

BeautifulSoup支持CSS选择器,可一步定位到目标a标签,代码更精简:

# 直接定位所有符合层级条件的a标签
target_links = soup.select('div.brandGroup.choose_a > div.brandChild > a')
# 提取并打印每个链接
for link in target_links:
    print(link.get('href'))

代码说明

  • CSS选择器div.brandGroup.choose_a > div.brandChild > a的含义:选择同时拥有brandGroup和choose_a类的div的直接子元素(>表示直接子节点)中,class为brandChild的div下的a标签;
  • 添加if link判断是为了容错,防止HTML结构异常(比如某个brandChild下没有a标签)时触发AttributeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:57:07