Python lxml截断包含';小于';性格 >s='
有人知道这方面的解决方法吗?您的Python lxml截断包含';小于';性格 >s=',python,html-parsing,lxml,Python,Html Parsing,Lxml,有人知道这方面的解决方法吗?您的HTML输入被破坏;你想要的东西在这里没有什么特别的意义。您的标记格式不正确。XML解析器不必猜测如何修复垃圾标记。所以先修正你的标记,你的否定语气是不相关的。我正在抓取第三部分html页面,需要按原样解析它。我举的例子只是为了说明这个问题。呃,有一段时间没有做太多的html内容了,忘记了结尾的分号:)你的答案很好。您关于将BS与html5lib结合使用的建议解决了这个问题。非常感谢。对于那些投反对票的人——我想他们不理解这个问题。既然你已经在使用lxml,那么值
HTML输入被破坏;你想要的东西在这里没有什么特别的意义。您的标记格式不正确。XML解析器不必猜测如何修复垃圾标记。所以先修正你的标记,你的否定语气是不相关的。我正在抓取第三部分html页面,需要按原样解析它。我举的例子只是为了说明这个问题。呃,有一段时间没有做太多的html内容了,忘记了
结尾的分号:)你的答案很好。您关于将BS与html5lib结合使用的建议解决了这个问题。非常感谢。对于那些投反对票的人——我想他们不理解这个问题。既然你已经在使用lxml
,那么值得指出的是,它有一个遵循w3c推荐的解析方法(这在理论上是你的浏览器使用的方法)的框架。这是一个破损的html,但遗憾的是lxml不能优雅地处理它。这种类型的html在野外非常常见。
>>> s = '<div> < 20 </div>'
>>> import lxml.html
>>> tree = lxml.html.fromstring(s)
>>> lxml.etree.tostring(tree)
'<div> </div>'
>>> BeautifulSoup("<div> < 20 </div>", "html5lib")
<html><head></head><body><div> < 20 </div></body></html>