Python 如何从HTML LXML中删除注释
如何使用lxml删除这样的评论而不丢失苹果iphone5s的值(灰色,16gb)Python 如何从HTML LXML中删除注释,python,xml,lxml,Python,Xml,Lxml,如何使用lxml删除这样的评论而不丢失苹果iphone5s的值(灰色,16gb) 苹果iPhone 5s(灰色,16 GB) 使用正则表达式。 import re a = '''<h1 class="_3eAQiD" data-reactid="144"> <!-- react-text: 145 --> Apple iPhone 5s (Space Grey, 16 GB) <!-- /react-text --> </h1>'''
苹果iPhone 5s(灰色,16 GB)
使用正则表达式。
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)
正则表达式太慢了。将检查LXML实现并revert.regex以解析html/xml:现在您有两个问题。您不应该自行构建解析器。可能stackoverflow需要改进其相关问题算法。甚至没有通过谷歌找到。谢谢,没有复制品。XML和HTML的答案是不同的。一个使用
etree.XMLParser
,另一个使用etree.HTMLParser
或html.HTMLParser
。
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>
import lxml.etree as et
x = et.fromstring(a, parser=et.HTMLParser(remove_comments=True))
print(et.tostring(x))