DS4UX (Spring 2016)/Wikipedia API





Building a Dataset using the Wikipedia API
In this project, we will explore a few ways to gather data using the Wikipedia API. Once we've done that, we will extend this to code to create our own datasets of Wikipedia edits or other data that we might be able to use to ask and answer questions in future sessions.

Goals

 * Get set up to build datasets with the Wikipedia API
 * Have fun collecting different types of data from Wikipedia
 * Practice reading and extending other people's code
 * Create a few collections of different types of data from Wikipedia that you can do research with in the final section

Download and test the Wikipedia project

 * 1) Right click the following file, click "Save Target as..." or "Save link as...", and save it to your Desktop directory: FIXME


 * 1) The ".zip" extension on the above file indicates that it is a compressed Zip archive. We need to "extract" its contents.
 * 2) Start up your terminal, navigate to the new directory you have unpacked called , and then test the code by running:

python wikipedia1-1.py

Important Background

 * Wikipedia runs software called MediaWiki which exists on many other wikis
 * You can go to the api page on any wiki to show documentation or check out the main documentation for the MediaWiki API on the MedaiWiki website.

Material We Will Cover

 * looking at the images within a page http://en.wikipedia.org/w/api.php?action=query&titles=Seattle&prop=images&imlimit=20&format=jsonfm
 * change the city with a custom URL


 * getting individual users' edit counts: http://en.wikipedia.org/w/api.php?action=query&list=users&ususers=Benjamin_Mako_Hill|Jtmorgan|Moonriddengirl|Keilana&usprop=editcount&format=jsonfm
 * get the content of the main page http://en.wikipedia.org/w/api.php?format=json&action=query&titles=Main%20Page&prop=revisions&rvprop=content
 * example programs: wikipedia-raw1-unicode-problems-example.py (note: this is an example of Unicode problems when running this on Windows), wikipedia-raw2-mudslide-edit.py

Resources

 * Main MediaWiki API Documentation
 * Autogenerated API Documentation
 * API Sandbox
 * Sample API queries