标签:whitespace html5lib html python
我刚刚开始在一个充满页面的网站上工作,这些页面的所有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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。