2010-08-11 100 views
2

我有一个非常简单的Python代码读取XML的维基百科API:维基百科与Python

import urllib 
from xml.dom import minidom 

usock = urllib.urlopen("http://en.wikipedia.org/w/api.php?action=query&titles=Fractal&prop=links&pllimit=500") 
xmldoc=minidom.parse(usock) 
usock.close() 
print xmldoc.toxml() 

但这个代码返回这些错误:

Traceback (most recent call last): 
    File "/home/user/workspace/wikipediafoundations/src/list.py", line 5, in <module><br> 
    xmldoc=minidom.parse(usock)<br> 
    File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse<br> 
    return expatbuilder.parse(file)<br> 
    File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 928, in parse<br> 
    result = builder.parseFile(file)<br> 
    File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 207, in parseFile<br> 
    parser.Parse(buffer, 0)<br> 
xml.parsers.expat.ExpatError: syntax error: line 1, column 62<br> 

我不知道,因为我只是学习python。有没有办法更详细地得到错误?有谁知道解决方案?另外,请推荐一个更好的语言中做到这一点

谢谢你,
Venkat饶

+0

格式的代码示例! – 2010-08-11 03:37:06

回答

9

您所请求的网址是XML的HTML表示将返回:

http://en.wikipedia.org/w/api.php?action=query&titles=Fractal&prop=links&pllimit=500 

所以XML解析器失败。您可以通过在浏览器中粘贴上述内容来查看。尝试在年底加入format=xml

http://en.wikipedia.org/w/api.php?action=query&titles=Fractal&prop=links&pllimit=500&format=xml 

为记录的链接页面上:

+0

谢谢 这很简单。 – 2010-08-11 03:47:10

+3

@user,因为@ ars的答案解决了您的问题,**接受它** - 即,在答案文本左侧的复选标记形状图标上点击。这是基本的礼仪! – 2010-08-11 04:36:29