防止etree在解析HTML内容时解析HTML实体
有没有办法让etree在解析HTML内容时,不去处理HTML实体呢?
html = etree.HTML('<html><body>&</body></html>')
html.find('.//body').text
这样我得到的是'&',但我想要的是'&'本身。
1 个回答
1
你可以在处理数据之前或之后进行一些操作。比如,在把数据送给HTML解析器之前,可以把'&'替换成u'\xfe',然后在输出的时候再把u'\xfe'替换回'&'。
from lxml import etree
html = etree.HTML('<html><body>&</body></html>'.replace('&',u'\xfe'))
html.find('.//body').text.replace(u'\xfe','&')
u'&'