我在使用 minidom 修改 url 数据时遇到此错误“xml.parsers.expat.ExpatError: not well-formed (invalid token):”

问题描述 投票:0回答:1
我在使用 minidom 解析 url 中的数据时遇到此错误

xml.parsers.expat.ExpatError: syntax error: line 1, column 0

。任何人都可以帮助我吗?

这是我的代码:

from xml.dom import minidom import urllib2 url= 'http://www.awgp.org/about_us' openurl=urllib2.urlopen(url) doc=minidom.parse("about_us.xml")

错误:

Traceback (most recent call last): File "test3.py", line 11, in <module> doc=minidom.parse("about_us.xml") File "C:\Python27\lib\xml\dom\minidom.py", line 1918, in parse return expatbuilder.parse(file) File "C:\Python27\lib\xml\dom\expatbuilder.py", line 924, in parse result = builder.parseFile(fp) File "C:\Python27\lib\xml\dom\expatbuilder.py", line 211, in parseFile parser.Parse("", True) xml.parsers.expat.ExpatError: syntax error: line 1, column 0
    
python xml minidom
1个回答
0
投票
parser.Parse("", True) xml.parsers.expat.ExpatError: syntax error: line 1, column 0

您的回溯中的上述内容向我表明您的“about_us.xml”文件是空的。 您有

openurl

,但您没有表明您曾经调用过 
openurl.read()
 来实际获取数据。
您也没有显示您在何处或如何将所述数据写入“about_us.xml”文件。

from xml.dom import minidom import urllib2 url= 'http://www.awgp.org/about_us' openurl=urllib2.urlopen(url) doc=minidom.parse(openurl) print doc

给我

Traceback (most recent call last): File "main.py", line 5, in <module> doc=minidom.parse(openurl) File "/usr/local/lib/python2.7/xml/dom/minidom.py", line 1918, in parse return expatbuilder.parse(file) File "/usr/local/lib/python2.7/xml/dom/expatbuilder.py", line 928, in parse result = builder.parseFile(file) File "/usr/local/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile parser.Parse(buffer, 0) xml.parsers.expat.ExpatError: not well-formed (invalid token): line 51, column 81

这表明您尝试解析为 XML 的页面格式不正确。尝试使用

美丽的汤来代替,据我记忆,这是非常宽容的。

from BeautifulSoup import BeautifulSoup import urllib2 url= 'http://www.awgp.org/about_us' openurl=urllib2.urlopen(url) soup = BeautifulSoup(openurl.read()) for a in soup.findAll('a'): print (a.text, a.get('href'))

顺便说一句,你需要 Beautiful Soup 的第 3 版,因为你仍在使用 python 2.7

© www.soinside.com 2019 - 2024. All rights reserved.