【问题标题】:Wikipedia with Python使用 Python 的维基百科
【发布时间】:2010-08-11 03:35:49
【问题描述】:

我有这个非常简单的 python 代码来读取 wikipedia api 的 xml:

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,所以我不知道。有没有办法得到更详细的错误?有谁知道解决方案?另外,请推荐一种更好的语言来执行此操作。

谢谢你,
文卡特饶

【问题讨论】:

    标签: python xml wikipedia


    【解决方案1】:

    您请求的 URL 是要返回的 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
    

    如链接页面上所述:

    【讨论】:

    • @user,既然@ars 的回答解决了你的问题,接受它——也就是说,点击他的回答文本左侧的复选标记形图标。这是基本的礼仪!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 2011-12-13
    • 2013-12-26
    相关资源
    最近更新 更多