问题 用于python的Wikipedia API


我正在尝试使用Wikipedia API for python在维基百科页面中查看目录。这是我的代码。

>>> import wikipedia
>>> ny = wikipedia.page("New York")
>>> ny.sections

但我得到一个空列表 [] 作为结果。当我进入页面并检查时,我可以看到目录中有内容。除了这个之外,文档中说的所有其他内容似乎都有用。我是来自java背景的python的新手。


7772
2018-01-19 06:06


起源

这很奇怪,但它看起来像 sections 永远不会正常工作它总是返回空列表。 - PatNowak
@PatNowak你是如何验证它总是返回一个空列表? - mahacoder
我查了一堆网站。 - PatNowak
@PatNowak我也这样做了,但这是确保它的方式吗? - mahacoder
您可以查看维基百科源代码,该源代码位于wikipedia.py中,并编写您自己的单元测试以检查此功能的各个部分。 - PatNowak


答案:


当前版本的Wikipedia API python库中存在一个错误。您可以安装分支 卢卡斯德在github上 解决了这个问题:

pip install git+https://github.com/lucasdnd/Wikipedia.git

(您可以 --upgrade 如果你已经安装了它)

现在:

>>> import wikipedia
>>> ny = wikipedia.page("New York")
>>> ny.sections
[u'History', u'16th century', u'17th century', u'18th century, the American Revolution, and statehood', u'19th century', u'Immigration', u'September 11, 2001 attacks', u'Hurricane Sandy, 2012', u'Geography', u'Climate', u'Statescape', u'Regions', u'Adjacent geographic entities', u'State parks', u'National parks', u'Administrative divisions', u'Demographics', u'Population', u'Most populous counties', u'Major cities', u'Metropolitan areas', u'Racial and ancestral makeup', u'Languages', u'Religion', u'LGBT', u'Economy', u'Wall Street', u'Silicon Alley', u'Microelectronic hardware and photographic processing', u'Media and entertainment', u'Tourism', u'Exports', u'Education', u'Transportation', u'Government and politics', u'Government', u'Capital punishment', u'Federal representation', u'Politics', u'Sports', u'See also', u'References', u'Further reading', u'External links'] 

它有希望成为 固定在主库中 不久之后。


10
2018-02-01 03:43





我面临同样的问题。而且由于它已经差不多3年而且它看起来不会被修复,我创建了另一个简单的库 - 维基百科的API

import wikipediaapi

wiki = wikipediaapi.Wikipedia('en')
mutcd = wiki.page('Comparison of MUTCD-Influenced Traffic Signs')
print("\n".join([s.title for s in mutcd.sections]))

输出:

Places
Media and entertainment
Sports
Ships
Other uses
See also

4
2017-12-13 12:31