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

如何用BeautifulSoup实现标题标签的缩进输出?

实现标题层级缩进输出的修改方案

核心思路

根据标题标签的级别(H1/H2/H3...)添加对应数量的缩进:H1不缩进,H2加3个空格,H3加6个空格,以此类推,匹配你需要的层级格式。

修改后的代码

from bs4 import BeautifulSoup
import requests

# 补充网页请求逻辑(原代码缺失website变量定义)
url = "你的目标网页地址"
website = requests.get(url)
soup = BeautifulSoup(website.content, 'html.parser')

# 可按需扩展要抓取的标题标签范围,这里包含H1-H3
tags = soup.find_all(['h1', 'h2', 'h3'])

for tag in tags:
    # 提取标题级别(如h1对应1,h2对应2)
    level = int(tag.name[1])
    # 计算对应缩进量
    indent = "   " * (level - 1)
    # 输出缩进后的标题文本,处理标签内有子元素的情况
    print(f"{indent}{tag.get_text(strip=True)}")

关键细节说明

  • 用tag.get_text(strip=True)替代tag.string:避免标签内包含其他元素时返回None的问题,同时自动去除文本前后的空白字符。
  • 缩进逻辑:通过标签名提取级别数字,用(level-1)*3个空格实现层级区分,完全匹配你给出的示例格式。
  • 网页请求补充:原代码未定义website变量,新增了requests.get(url)的逻辑,记得替换成你实际要爬取的网址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:25:25