Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中读取页面并使用minidom.parse或minidom.parseString对其进行解析?_Python - Fatal编程技术网

在Python中读取页面并使用minidom.parse或minidom.parseString对其进行解析?

在Python中读取页面并使用minidom.parse或minidom.parseString对其进行解析?,python,Python,我有以下任一代码: 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.expat错误:语法错误:第1行第0列 或者这个: import urllib from xml.dom import minidom res =

我有以下任一代码:

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.expat错误:语法错误:第1行第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。是HTML5。顶部右侧的
doctype
告诉您这一点,即使您忽略了内容类型。不能使用XML解析器解析HTML*

如果您想使用STDLIB中的内容,可以使用(Python 3。x)/(2。x)**但是,您可能需要考虑第三方库,例如“代码> LXML X/CODE >(尽管有名称,可以解析HTML),<代码> HTML5LIB < /代码>,或<代码> BeautifulSoup < /C> >(它在一个非常好的接口中封装了一个较低级别的解析器)。 *除非是XHTML或HTML5的XML输出,但这里不是这样


**不要使用
htmlib
,除非您使用的是旧版本的Python,而没有可用的
HTMLParser
。此模块被弃用是有原因的。

出现此错误的原因是页面不是有效的XML。是HTML5。顶部右侧的
doctype
告诉您这一点,即使您忽略了内容类型。不能使用XML解析器解析HTML*

如果您想使用STDLIB中的内容,可以使用(Python 3。x)/(2。x)**但是,您可能需要考虑第三方库,例如“代码> LXML X/CODE >(尽管有名称,可以解析HTML),<代码> HTML5LIB < /代码>,或<代码> BeautifulSoup < /C> >(它在一个非常好的接口中封装了一个较低级别的解析器)。 *除非是XHTML或HTML5的XML输出,但这里不是这样


**不要使用
htmlib
,除非您使用的是旧版本的Python,而没有可用的
HTMLParser
。此模块因某种原因被弃用。

是否使用
xml.dom.minidom
作为要求,或者您愿意使用其他模块?相信我,您应该做一个转换:)xml.dom.minidom的文档做了我需要做的一切。我更喜欢使用标准库,除非确实需要这样做。我看到了很多关于
BeautifulSoup
的建议,但是如果
xml.dom.minidom
工作正常,我就没有用了。要解析网页,你应该使用HTML解析器而不是xml解析器。@pts好建议,我将尝试
HTMLParser
@JVE999有很多
BeautifulSoup
建议,因为它确实使html解析变得简单直观。这将节省您的时间并使网络抓取变得有趣。使用
xml.dom.minidom
是一项要求,还是您愿意使用其他模块?相信我,您应该做一个转换:)xml.dom.minidom的文档做了我需要做的一切。我更喜欢使用标准库,除非确实需要这样做。我看到了很多关于
BeautifulSoup
的建议,但是如果
xml.dom.minidom
工作正常,我就没有用了。要解析网页,你应该使用HTML解析器而不是xml解析器。@pts好建议,我将尝试
HTMLParser
@JVE999有很多
BeautifulSoup
建议,因为它确实使html解析变得简单直观。这将节省您的时间并使网页抓取变得有趣。以下是一个描述使用
HTMLParser
解析HTML的SO答案供参考:以下是一个描述使用
HTMLParser
解析HTML的SO答案供参考: