gpt4 book ai didi

python - 读取页面并在 Python 中使用 minidom.parse 或 minidom.parseString 解析它?

转载 作者:行者123 更新时间:2023-11-28 22:48:29 24 4
gpt4 key购买 nike

我有以下任一代码:

import urllib
from xml.dom import minidom
res = urllib.urlopen('https://www.google.com/webhp#q=apple&start=10')
dom = minidom.parse(res)

这给了我错误 xml.parsers.expat.ExpatError: syntax error: line 1, column 0

或者这个:

import urllib
from xml.dom import minidom
res = urllib.urlopen('https://www.google.com/webhp#q=apple&start=10')
dom = minidom.parseString(res.read())

这给了我同样的错误。 res.read() 读起来很好,是一个字符串。

我想稍后再解析代码。我如何使用 xml.dom.minidom 执行此操作?

最佳答案

您收到此错误的原因是该页面不是有效的 XML。它是 HTML 5。即使您忽略内容类型,位于顶部的 doctype 也会告诉您这一点。您无法使用 XML 解析器解析 HTML。*

如果你想坚持使用 stdlib 中的内容,你可以使用 html.parser (Python 3.x)/HTMLParser (2.x).** 但是,您可能需要考虑第三方库,例如 lxml(尽管名称不同,但可以解析 HTML)、html5libBeautifulSoup(在一个非常好的界面中包装了一个较低级别的解析器)。

* 好吧,除非是 XHTML,或者 HTML5 的 XML 输出,但这里不是这种情况。

** 不要使用htmllib,除非您使用的是没有有效HTMLParser 的旧版本Python。由于某种原因,此模块已被弃用。

关于python - 读取页面并在 Python 中使用 minidom.parse 或 minidom.parseString 解析它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com