initial import of solutions for wikipedia data challenges
[wikipedia-cdsw-solutions] / solution_1.py
1 # 1. Save the revision metadata printed in wikipedia1-2.py to a file called "wikipedia_revisions.tsv".
2
3
4 import requests
5
6 # raw string:
7 # ?action=query&prop=revisions&titles=Python_(programming_language)&rvlimit=500&rvprop=timestamp|user&format=json')
8
9 # parameter version which makes a little more sense
10 parameters = {'action' : 'query',
11               'prop' : 'revisions',
12               'titles' : 'Python (programming language)',
13               'rvlimit' : 500,
14               'rvprop' : "timestamp|user",
15               'format' : 'json',
16               'continue' : ''}
17
18 output_file = open("wikipedia_revisions.tsv", 'w')
19
20 # run a "while True" loop
21 while True:
22     wp_call = requests.get('https://en.wikipedia.org/w/api.php', params=parameters)
23     response = wp_call.json()
24     
25     for page_id in response["query"]["pages"].keys():
26         page_title = response["query"]["pages"][page_id]["title"]
27         revisions = response["query"]["pages"][page_id]["revisions"]
28
29         for rev in revisions:
30             print(page_title + "\t" + rev["user"] + "\t" + rev["timestamp"], file=output_file)
31
32     if 'continue' in response:
33         parameters.update(response['continue'])
34     else:
35         break
36             
37
38 output_file.close()

Benjamin Mako Hill || Want to submit a patch?