如何使用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