Википедия с Python - PullRequest
       26

Википедия с Python

2 голосов
/ 11 августа 2010

У меня есть очень простой код Python для чтения XML для API Википедии:

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 Rao

1 Ответ

9 голосов
/ 11 августа 2010

URL-адрес, который вы запрашиваете, является HTML-представлением XML, который будет возвращен:

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

, как описано на связанной странице:

...