Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wikipedia API for python

I am trying to see the table of contents in a wikipedia page using Wikipedia API for python. Here is my code.

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

But I am getting an empty list [] as the result. When I go to the page and check, I can see that there is content in the table of contents. All the other things said in the documentation seem to work except this. I am new to python coming from a java background.

like image 835
mahacoder Avatar asked Jan 19 '16 06:01

mahacoder


2 Answers

There is a bug in the current version of the Wikipedia API python library. You can install a branch by lucasdnd on github that fixed this:

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

(You can --upgrade if you already have it installed)

Now:

>>> 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'] 

It'll hopefully be fixed in the main library sometime soon.

like image 188
slaporte Avatar answered Oct 23 '22 11:10

slaporte


I was facing the same issue. And since it's almost 3 years and it doesn't look, that it will get fixed, I have created another simple library - Wikipedia-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]))

Output:

Places
Media and entertainment
Sports
Ships
Other uses
See also
like image 45
Martin Majlis Avatar answered Oct 23 '22 13:10

Martin Majlis