如何使用LXML解析损坏的HTML

动力

我正在尝试在python 2.5和2.7上使用LXML解析器解析损坏的HTML

与LXML文档(http://lxml.de/parsing.html#parsing-html不同,无法解析损坏的HTML:

from lxml import etree
import StringIO
broken_html = "<html><head><title>test<body><h1>page title</h3>"
parser = etree.HTMLParser()
tree   = etree.parse(StringIO.StringIO(broken_html))

结果:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lxml.etree.pyx", line 2954, in lxml.etree.parse (src/lxml/lxml.etree.c:56220)
  File "parser.pxi", line 1550, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:82482)
  File "parser.pxi", line 1578, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:82764)
  File "parser.pxi", line 1457, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:81562)
  File "parser.pxi", line 965, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:78232)
  File "parser.pxi", line 569, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:74488)
  File "parser.pxi", line 650, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:75379)
  File "parser.pxi", line 590, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:74712)
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: h1 line 1 and h3, line 1, column 50
弗雷德·富

不要只是构造该解析器,而是使用它(按照您链接到的示例):

>>> tree = etree.parse(StringIO.StringIO(broken_html), parser=parser)
>>> tree
<lxml.etree._ElementTree object at 0x2fd8e60>

lxml.html用作快捷方式:

>>> from lxml import html
>>> broken_html = "<html><head><title>test<body><h1>page title</h3>"
>>> html.fromstring(broken_html)
<Element html at 0x2dde650>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用lxml解析日语中的html并产生可读的输出?

来自分类Dev

使用lxml解析命名节奏的HTML?

来自分类Dev

python使用lxml解析html表

来自分类Dev

使用lxml解析html部分模板

来自分类Dev

使用LXML解析器的HTML getnext

来自分类Dev

在python中使用lxml解析html页面

来自分类Dev

用python解析lxml:如何使用objectify

来自分类Dev

用python解析lxml:如何使用objectify

来自分类Dev

使用lxml进行HTML解析-如何在结果列表中保留空内容?

来自分类Dev

如何使用lxml解析从html文件中打印出所有文本信息?

来自分类Dev

使用lxml解析Yelp-忽略html标签

来自分类Dev

使用lxml解析html文档时的编码问题

来自分类Dev

我究竟做错了什么?使用lxml解析HTML

来自分类Dev

使用lxml解析Yelp-忽略html标记

来自分类Dev

解析本地HTML python(lxml)

来自分类Dev

使用lxml解析时,如何防止Python中的无限循环?

来自分类Dev

如何使用本地 DTD 文件通过 lxml 解析 XML 文件?

来自分类Dev

如何使用lxml.html从HTML元素获取文本

来自分类Dev

使用Python lxml解析XML

来自分类Dev

使用 lxml 和 xpath 解析

来自分类Dev

python-使用带有xpath语法的lxml.html解析html表单

来自分类Dev

如何使用php解析HTML?

来自分类Dev

如何使用lxml从此HTML代码段中获取文本?

来自分类Dev

如何在html上使用lxml获取属性值

来自分类Dev

lxml无法正确解析HTML的unicode

来自分类Dev

用lxml / xpath解析html元素

来自分类Dev

通过xpath用lxml解析html的问题

来自分类Dev

如何使用HTML Agility Pack解析HTML

来自分类Dev

python使用lxml和xpath解析html表上的特定数据