解析 HTML 内容时阻止 etree 解析 HTML 实体
Posted
技术标签:
【中文标题】解析 HTML 内容时阻止 etree 解析 HTML 实体【英文标题】:Preventing etree from resolving HTML entities when parsing HTML contents 【发布时间】:2014-04-11 09:32:43 【问题描述】:在解析 html 内容时,有什么方法可以阻止 etree 解析 HTML 实体?
html = etree.HTML('<html><body>&</body></html>')
html.find('.//body').text
这给了我 '&' 但我想得到 '&'自己。
【问题讨论】:
一种选择/解决方法是使用cgi.escape
处理正文文本,请参阅***.com/questions/1061697/…。
【参考方案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'&'
【讨论】:
以上是关于解析 HTML 内容时阻止 etree 解析 HTML 实体的主要内容,如果未能解决你的问题,请参考以下文章
python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别