API:Edit/Editing with Python
From MediaWiki.org
< API:Edit
Edit example in Python, regarding the API:Edit article (based on User:Sebelino7/Login with Python)
Tested with MediaWiki 1.26
# -*- coding: utf-8 -*-
import urllib2
import requests
user = 'mediawiki_login'
passw = urllib2.quote('mediawiki_pass')
baseurl = 'http://meta.wikimedia.org/w/'
login_params = '?action=login&lgname=%s&lgpassword=%s&format=json'% (user,passw)
summary='bot update'
content='Hej!'
title = 'User:Bot/Test'
# Login request
r1 = requests.post(baseurl+'api.php'+login_params)
login_token = r1.json()['login']['token']
#login confirm
login_params2 = login_params+'&lgtoken=%s'% login_token
r2 = requests.post(baseurl+'api.php'+login_params2, cookies=r1.cookies)
#get edit token2
params3 = '?format=json&action=query&meta=tokens&continue='
r3 = requests.get(baseurl+'api.php'+params3, cookies=r2.cookies)
edit_token = r3.json()['query']['tokens']['csrftoken']
edit_cookie = r2.cookies.copy()
edit_cookie.update(r3.cookies)
# save action
headers = {'content-type': 'application/x-www-form-urlencoded'}
payload = {'action': 'edit', 'assert': 'user', 'format': 'json', 'text': content, 'summary': summary, 'title': title, 'token': edit_token}
r4 = requests.post(baseurl+'api.php', headers=headers, data=payload, cookies=edit_cookie)
print (r4.text)