如何用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
相关产品推荐
相关产品推荐

