python xml.dom 解析问题

0 投票
1 回答
1062 浏览
提问于 2025-04-17 00:16

我正在写一个程序,第一步是获取一个 URL 地址并打开这个页面。然后,它会把页面内容放入 xml.dom.minidom 这个解析器中:

from xml.dom.minidom import parse

page = urllib2.urlopen(page_url)
parser = parse(page)

问题是,很多网页的标签不匹配,还有一些特殊字符,所以解析的时候会出错。如果页面中有 <br> 而不是 <br />,也会出错……

我试过这样做:

from xml.dom.minidom import parseString

page = urllib2.urlopen(page_url)
data = ""
for line in page.readlines():
    data += str(line.replace("<br>", "<br />").replace(OTHER).replace...)
parser = parse(data)

但是,这并不是一个好的解决办法。

那么,有没有什么库可以对标签不匹配和其他 HTML 代码中的错误不那么敏感呢?

1 个回答

2

我更喜欢使用 lxml.html,因为它非常强大。而且 lxml 整体上运行速度很快,功能也很不错,包括支持 XPath

import lxml.html

doc = lxml.html.parse('http://example.com')

撰写回答