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

如何用BeautifulSoup结合for循环获取无类名/ID的嵌套div内容?

用BeautifulSoup结合for循环提取目标父div

你可以通过遍历顶层父div,检查其子div的文本内容是否包含目标关键词来实现。以下是具体的代码实现:

步骤1:导入依赖并解析HTML

from bs4 import BeautifulSoup

# 你的目标HTML内容(实际场景中可替换为requests.get获取的响应内容)
html = """
<div>
<div>Toy Shop</div>
<div>#03-538</div>
<div>Fun place for kids</div>
</div>
<div>
<div>car Shop</div>
<div>#01-342</div>
<div>carss</div>
</div>
"""

# 解析HTML
soup = BeautifulSoup(html, "html.parser")

步骤2:用for循环筛选目标div

# 定义需要匹配的目标文本
targets = ["carss", "Fun place for kids"]
result_divs = []

# 遍历所有顶层父div(recursive=False只获取直接子节点的div)
for parent_div in soup.find_all("div", recursive=False):
    # 提取当前父div下所有子div的文本(去除空白字符)
    child_texts = [child.get_text(strip=True) for child in parent_div.find_all("div")]
    # 检查是否包含任一目标文本
    for text in targets:
        if text in child_texts:
            result_divs.append(parent_div)
            break  # 匹配到后跳出当前循环,避免重复添加

# 输出结果
for idx, div in enumerate(result_divs, 1):
    print(f"第{idx}个目标div内容:")
    print(div.prettify())

代码说明

  • recursive=False:限制只查找当前节点的直接子div,避免遍历深层嵌套的div,精准定位你需要的父容器。
  • get_text(strip=True):去除文本前后的换行、空格等空白字符,确保匹配的准确性。
  • 双层循环逻辑:外层遍历所有父div,内层检查父div下的子div是否包含目标文本,符合条件就将父div加入结果列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:30:43