如何从HTML LXML中删除注释

时间:2018-01-16 07:58:20

标签: python xml lxml

如何使用lxml删除这样的评论而不会丢失Apple iPhone 5s的值(Space Grey,16 GB)

<h1 class="_3eAQiD" data-reactid="144">
<!-- react-text: 145 -->
Apple iPhone 5s (Space Grey, 16 GB)
<!-- /react-text -->
</h1>

1 个答案:

答案 0 :(得分:2)

使用Regex。

import re    

a = '''<h1 class="_3eAQiD" data-reactid="144">
<!-- react-text: 145 -->
Apple iPhone 5s (Space Grey, 16 GB)
<!-- /react-text -->
</h1>'''    

print re.sub("(<!--.*?-->)", "", a, flags=re.MULTILINE)

<强>结果:

<h1 class="_3eAQiD" data-reactid="144">

Apple iPhone 5s (Space Grey, 16 GB)

</h1>

使用lxml

import  lxml.etree as et
x = et.fromstring(a, parser=et.HTMLParser(remove_comments=True))
print(et.tostring(x))