Bearbeiten von Pik8 mit Python

Aus PIK8
Wechseln zu: Navigation, Suche

Automatisierte Aufgaben sind hilfreich um viele Elemente gleichzeitig zu bearbeiten

Direkt über die Wiki API

Die Wiki Api bietet die Möglichkeit Abfragen an die Pik8 zu schicken.

Python Script um einen Artikel zu bearbeiten

# -*- coding: utf-8 -*-
import requests

username = 'USERNAME'
password = 'PASSWORT'
baseurl = 'http://www.pik8.at/w/'
summary = 'bot hello'
message = 'Hello Wikipedia. I am alive!'
title = 'Benutzer:Dpfahler'

s = requests.session()

# Login request
payload = {'action': 'login', 'format': 'json',
           'utf8': '', 'lgname': username}
r1 = s.post(baseurl + 'api.php', data=payload)
print(r1.text)

# login confirm
login_token = r1.json()['login']['token']
payload = {'action': 'login', 'format': 'json', 'utf8': '',
           'lgname': username, 'lgpassword': password, 'lgtoken': login_token}
r2 = s.post(baseurl + 'api.php', data=payload)
print(r2.text)

# get edit token2
params3 = '?format=json&action=tokens'
r3 = s.get(baseurl + 'api.php' + params3)
print(r3.text)

edit_token = r3.json()['tokens']['edittoken']

# save action
payload = {'action': 'edit', 'assert': 'user', 'format': 'json', 'utf8': '',
           'appendtext': message, 'summary': summary,
           'title': title, 'token': edit_token}
r4 = s.post(baseurl + 'api.php', data=payload)

print(r4.text)

https://gist.github.com/theShmoo/f5ff790f0dfb74c5bd9a7b1f6052991e

Schreiben eines PyWikiBots

Eine schnellere und einfachere Möglichkeit Anfragen an das Wiki zu stellen ist mittels einer Library.

Ich habe Pywikibot ausgetestet.

Installieren und Konfigurieren

Install Python

Download und installiere Python von http://www.python.org/downloads/.

Downloading Pywikibot

Download Pywikibot 2.0rc5

Oder "nightly downloads" von https://tools.wmflabs.org/pywikibot/.

Configuring Pywikibot

mit der Eingabe von

python pwb.py login

erstellst du ein user_config.py file.