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

如何用Python和BeautifulSoup格式化混乱的HTML源码?

如何用BeautifulSoup规整混乱的HTML源码

嘿,我太懂这种感受了——爬下来的HTML经常像被塞进洗衣机搅过一样,标签挤成一团,完全没法一眼看清结构。别慌,用BeautifulSoup自带的工具就能轻松把它“捋顺”,下面给你一步步讲怎么做:

最直接的方法:用prettify()

BeautifulSoup的prettify()方法就是专门干这个的,它会自动给标签添加换行、缩进,还能把HTML实体(比如>)转换成正常的可读字符。

举个实际的例子,就用你给出的那段混乱HTML:

from bs4 import BeautifulSoup

# 你获取到的混乱HTML片段
messy_html = 'property="article:tag" content="ally" /><meta property="article:tag" content="harvey weinstein" /><meta property="article:tag" content="pratiksha parulekar" /><meta property="article:tag" content="rape culture" /><meta property="article:section" content="..."'

# 注意:因为你的HTML是片段,最好先包裹在一个根标签里(比如<div>),避免BeautifulSoup自动补全不必要的标签
soup = BeautifulSoup(f"<div>{messy_html}</div>", "html.parser")

# 生成规整的HTML
pretty_html = soup.prettify()

# 打印或者保存
print(pretty_html)

运行这段代码后,你会得到结构清晰、缩进整齐的输出:

<div>
 <meta property="article:tag" content="ally"/>
 <meta property="article:tag" content="harvey weinstein"/>
 <meta property="article:tag" content="pratiksha parulekar"/>
 <meta property="article:tag" content="rape culture"/>
 <meta property="article:section" content="..."/>
</div>

额外小技巧

  • 调整缩进宽度:默认是4个空格,如果你想用2个空格,可以这样写:soup.prettify(indent_width=2)
  • 保存到文件查看:把规整后的HTML保存成.html文件,用浏览器打开会更直观:
    with open("cleaned_html.html", "w", encoding="utf-8") as f:
        f.write(pretty_html)
    
  • 处理完整HTML文档:如果你的HTML是完整的(包含<html>、<head>等标签),直接传入BeautifulSoup就行,不用额外加根标签。

这样处理后,原本乱糟糟的HTML瞬间就变得清爽可读了,不管是调试还是查看内容都方便很多~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:47:05