initial import of solutions for wikipedia data challenges
[wikipedia-cdsw-solutions] / solution_5.py
1 # 5. Find out how many revisions to the article on "Python
2 # (programming language)" were made by user "Peterl"? How about
3 # "Hfastedge"?
4
5 import requests
6
7 # parameter version which makes a little more sense
8 parameters = {'action' : 'query',
9               'prop' : 'revisions',
10               'titles' : 'Python (programming language)',
11               'rvlimit' : 500,
12               'rvprop' : "ids|user",
13               'format' : 'json',
14               'continue' : ''}
15
16 user_list = ['Peterl', 'Hfastedge']
17
18 counter_peterl = 0
19 counter_hfastedge = 0
20
21 # run a "while True" loop
22 while True:
23     wp_call = requests.get('https://en.wikipedia.org/w/api.php', params=parameters)
24     response = wp_call.json()
25     
26     for page_id in response["query"]["pages"].keys():
27         revisions = response["query"]["pages"][page_id]["revisions"]
28         
29         for rev in revisions:
30             if rev['user'] == "Peterl":
31                 counter_peterl = counter_peterl + 1
32             if rev['user'] == "Hfastedge":
33                 counter_hfastedge = counter_hfastedge + 1
34
35     if 'continue' in response:
36         parameters.update(response['continue'])
37     else:
38         break
39             
40
41 print("Peterl made %s edits" % counter_peterl)
42 print("Hfastedge made %s edits" % counter_hfastedge)

Benjamin Mako Hill || Want to submit a patch?