Skip to navigation
API to edit/create a page on mediawiki
26.05.20
#!/usr/bin/python3 """ edit.py MediaWiki API Demos Demo of `Edit` module: POST request to edit a page MIT license """ import requests S = requests.Session() URL = "http://127.0.0.1/api.php" # Step 1: GET request to fetch login token PARAMS_0 = { "action": "query", "meta": "tokens", "type": "login", "format": "json" } R = S.get(url=URL, params=PARAMS_0) DATA = R.json() LOGIN_TOKEN = DATA['query']['tokens']['logintoken'] # Step 2: POST request to log in. Use of main account for login is not # supported. Obtain credentials via Special:BotPasswords # (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword PARAMS_1 = { "action": "login", "lgname": "Admin", "lgpassword": "Password", "lgtoken": LOGIN_TOKEN, "format": "json" } R = S.post(URL, data=PARAMS_1) # Step 3: GET request to fetch CSRF token PARAMS_2 = { "action": "query", "meta": "tokens", "format": "json" } R = S.get(url=URL, params=PARAMS_2) DATA = R.json() CSRF_TOKEN = DATA['query']['tokens']['csrftoken'] # Step 4: POST request to edit a page PARAMS_3 = { "action": "edit", "title": "Project:Sandbox", "token": CSRF_TOKEN, "format": "json", "appendtext": "Hello" } R = S.post(URL, data=PARAMS_3) DATA = R.json() print(DATA)
https://www.mediawiki.org/wiki/Special:MyLanguage/API:Tokens
Reply
Anonymous
Information Epoch 1752883245
Using text data files.
Home
Notebook
Contact us