编程语言
首页 > 编程语言> > 如何使用Python向现有HTML添加一致的空格?

如何使用Python向现有HTML添加一致的空格?

作者:互联网

我刚刚开始在一个充满页面的网站上工作,这些页面的所有HTML都在一行上,这是阅读和使用的真正痛苦.我正在寻找一种工具(最好是Python库),该工具将接受HTML输入并返回相同的HTML,除了添加换行符和适当的缩进之外. (所有标记,标记和内容均应保持不变.)

该库不必处理格式错误的HTML;我先通过html5lib传递HTML,因此它将成为格式正确的HTML.但是,如上所述,我希望它不会更改任何实际的标记本身.我相信html5lib,宁愿让它处理正确性方面.

首先,有人知道只有html5lib才有可能吗? (不幸的是,他们的文档似乎很少.)如果没有,您会建议使用哪种工具?我见过有人推荐HTML Tidy,但是我不确定是否可以将其配置为仅更改空白. (如果将开头传递的格式正确的HTML插入,除了插入空格外,它是否会做其他任何事情?)

解决方法:

算法

>将html解析为某种表示形式
>将表示序列化回html

示例html5lib parser with BeautifulSoup tree builder

#!/usr/bin/env python
from html5lib import HTMLParser, treebuilders

parser = HTMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup"))

c = """<HTML><HEAD><TITLE>Title</TITLE></HEAD><BODY>...... </BODY></HTML>"""

soup = parser.parse(c)
print soup.prettify()

输出:

<html>
 <head>
  <title>
   Title
  </title>
 </head>
 <body>
  ......
 </body>
</html>

标签:whitespace,html5lib,html,python
来源: https://codeday.me/bug/20191024/1918846.html