Python 使用lxml解析html部分模板

Python 使用lxml解析html部分模板,python,lxml,Python,Lxml,我正在尝试使用lxml解析html模板,并向html元素添加某些属性。我可以成功地做到这一点,但在通过 template = etree.parse(view, etree.HTMLParser(remove_comments=True)) 然后保存文档。我注意到我的模板包含额外的标记,使其成为有效的html模板。将模板包装为 <div> <span> A template </span> </div> 模板 使用html和bo

我正在尝试使用lxml解析html模板,并向html元素添加某些属性。我可以成功地做到这一点,但在通过

 template = etree.parse(view, etree.HTMLParser(remove_comments=True))
然后保存文档。我注意到我的模板包含额外的标记,使其成为有效的html模板。将模板包装为

 <div>
   <span> A template </span>
 </div>

模板
使用html和body标记,将其转换为

 <html>
 <body>
 <div>
   <span> A template </span>
 </div>
 </body>
 <html>

模板

如何读取“损坏的”html模板并防止lxml添加这些附加标记?

不要使用html解析器

使用html解析器:

>>> template = etree.fromstring('<div><span> A template </span></div>', etree.HTMLParser(remove_comments=True))
>>> etree.tostring(template)
'<html><body><div><span> A template </span></div></body></html>'
>>template=etree.fromstring('A template',etree.HTMLParser(remove_comments=True))
>>>etree.tostring(模板)
“模板”
没有它:

>>> template = etree.fromstring('<div><span> A template </span></div>')
>>> etree.tostring(template)
'<div><span> A template </span></div>'
>template=etree.fromstring('A template')
>>>etree.tostring(模板)
“模板”