如何使用缩进将HTML打印到文件中

我使用lxml.html生成一些HTML.我想打印(带缩进)我的最终结果到一个html文件.我怎么做?

这是我迄今为止所尝试过的(我对Python和lxml相对较新):

import lxml.html as lh
from lxml.html import builder as E
sliderRoot=lh.Element("div", E.CLASS("scroll"), style="overflow-x: hidden; overflow-y: hidden;")
scrollContainer=lh.Element("div", E.CLASS("scrollContainer"), style="width: 4340px;")
sliderRoot.append(scrollContainer)
print lh.tostring(sliderRoot, pretty_print = True, method="html")

如您所见,我正在使用pretty_print = True属性.我认为这会给缩进代码,但它并没有真正帮助.这是输出:

< div style =“overflow-x:hidden; overflow-y:hidden;” class =“scroll”>< div style =“width:4340px;”类= “scrollContainer” &GT&LT / DIV&GT&LT / DIV&GT

解决方法:

我最终直接使用了BeautifulSoup.这是lxml.html.soupparser用于解析HTML的内容.

BeautifulSoup有一种美化方法,可以完全按照它的说法进行操作.它用适当的缩进和一切来美化HTML.

BeautifulSoup不会修复HTML,因此破坏的代码仍然存在.但在这种情况下,由于代码是由lxml生成的,因此HTML代码至少在语义上是正确的.

在我的问题中给出的例子中,我将不得不这样做:

from BeautifulSoup import BeautifulSoup as bs
root = lh.tostring(sliderRoot) #convert the generated HTML to a string
soup = bs(root)                #make BeautifulSoup
prettyHTML = soup.prettify()   #prettify the html
上一篇:python – beautifulsoup不会识别lxml


下一篇:python – 无法在Ubuntu 12.04上安装lxml