Handbuch:Parameter für Spezial:Export
Siehe auch: Handbuch:dumpBackup.php
Wiki-Seiten können in einem speziellen XML-Format exportiert werden, um sie in einem anderen MediaWiki hochzuladen.[1] Siehe Hilfe:Export für weitere Details.
Verfügbare Parameter
Unten befindet sich eine Liste verfügbarer Parameter für Special:Export mit Stand von Version 1.16. Nicht alle dieser Parameter sind über die Benutzeroberfläche von Spezial:Export verfügbar.
Parameter | Typ der Variablen | Beschreibung |
---|---|---|
action
|
Zeichenkette | Ungenutzt; im Export-Formular auf "submit" gesetzt. |
Seitenauswahl | ||
/ (kein Parameter)
|
Wählt bis zu eine Seite aus, z. B. Special:Export/Sandbox | |
pages
|
? | Eine Liste von Seitentiteln, getrennt durch Zeilenvorschub-Zeichen (%0A). Maximal 35 Seiten. |
addcat /Kategorienname
|
Zeichenkette? | Diese wurden später hinzugefügt. addcat gibt alle Mitglieder der Kategorie catname aus. Wenn $wgExportFromNamespaces aktiviert ist, tun addns und nsindex das gleiche, allerdings mit Namensräumen und ihrem numerischen Index. Es werden maximal 5.000 Seiten ausgegeben.
Beispielsweise folgendes für alle Seiten in en:Category:Books: https://en.wikipedia.org/w/index.php?title=Special:Export&addcat&catname=Books&pages=XXXX |
addns /Namensraum-Index
| ||
Sortierung | ||
dir [2]
|
Zeichenkette | Sollte auf "desc" gesetzt werden, um Versionen in umgekehrter chronologischer Reihenfolge abzurufen.
Wenn dieser Parameter weggelassen wird, werden Versionen standardmäßig in aufsteigender chronologischer Reihenfolge des Zeitstempels abgerufen (älteste zu neuesten). |
Begrenzung der Ergebnisse | ||
offset [2]
|
? | Der Zeitstempel, nach dem begonnen werden soll. Der Zeitstempel kann in verschiedenen Formaten angegeben werden, darunter das üblicherweise in MediaWiki genutzte Format mit 14 Zeichen, und ein Format in ISO 8601, wie in der Ausgabe der XML-Dumps. |
limit [2]
|
Ganzzahl | Die maximale Anzahl auszugebender Versionen. Wenn du mehr als ein seitenspezifisches Maximum anfragst (definiert in $wgExportMaxHistory : derzeit 1.000 in Wikimedia-Projekten), wird die Anzahl auf diese Zahl reduziert.
Diese Seite ist kumulativ für alle im Parameter pages angegebenen Seiten. Wenn du beispielsweise ein Limit von 100 für zwei Seiten mit je 70 Versionen anfragst, erhältst du 70 von der einen und 30 von der anderen.[3] |
curonly
|
Wahrheitswert | Umfasst nur die aktuelle Version (Standard für GET-Anfragen). |
history
|
? | Umfasst die vollständige Versionsgeschichte, überschreibt dir , limit und offset .
Funktioniert nicht immer. https://en.wikipedia.org/w/index.php?title=Special:Export&pages=US_Open_(tennis)&history=1&action=submit funktioniert und gibt alle Versionen aus, https://en.wikipedia.org/w/index.php?title=Special:Export&pages=India&history=1&action=submit hingegen nicht. |
Extras | ||
templates
|
? | Umfasst alle eingebundenen Vorlagen auf allen für den Export angegebenen Seiten. |
listauthors
|
Wahrheitswert | Umfasst eine Liste aller Benutzernamen und Benutzer-IDs für jede Seite. Funktion ist standardmäßig deaktiviert; kann über die Änderung von $wgExportAllowListContributors aktiviert werden. |
pagelink-depth
|
Ganzzahl | Umfasst alle verlinkten Seiten bis zur angegebenen Tiefe. Begrenzt auf $wgExportMaxLinkDepth (standardmäßig 0, deaktiviert die Funktion) oder 5, wenn der Benutzer nicht die Berechtigung hat, Limits zu ändern. |
wpDownload
|
? | Speicherung als Datei, benannt mit dem aktuellen Zeitstempel. Implementiert über content-disposition:attachment -HTTP-Header.
|
Anfragen mit URL-Parametern funktionieren nicht
Die Parameter dir
, offset
und limit
funktionieren nur bei POST-Anfragen.
GET-Anfragen über eine URL werden ignoriert.
Wenn du die URL wie in einem Browser nutzt, übermittelst du über GET. Im Ruby-Skript nutzt du POST.
Beispielsweise funktionieren die folgenden Parameter-Anfragen nicht und es werden trotz des Parameters limit=5 alle Versionen einer Seite ausgegeben.
https://en.wikipedia.org/w/index.php?title=Special:Export&pages=XXXX&offset=1&limit=5&action=submit
Abrufen der 5 ältesten Versionen
Eine POST-Anfrage wird von cURL generiert, wenn -d ""
übergeben wird.
Mit folgendem werden die 5 ältesten Versionen der Hauptseite der Englischsprachigen Wikipedia und ihrer Diskussionsseite abgerufen:
curl -d "" 'https://en.wikipedia.org/w/index.php?title=Special:Export&pages=Main_Page%0ATalk:Main_Page&offset=1&limit=5&action=submit'
Und hier sind die nächsten 5 Versionen der Hauptseite:
curl -d "" 'https://en.wikipedia.org/w/index.php?title=Special:Export&pages=Main_Page&offset=2002-01-27T20:25:56Z&limit=5&action=submit'
Hier wird der Zeitstempel aus der letzten Version der vorherigen Abfrage in das Offset-Feld der URL kopiert. Da das offset-Feld nicht-inklusiv ist, wird die fünfte Version nicht erneut angezeigt und wir erhalten stattdessen die Versionen 6-10.[4]
POST-Anfragen zum Herunterladen
Ein deutlicheres Beispiel, insbesondere wenn du das Ergebnis auch speichern möchtest, wäre
curl -d "&pages=Main_Page&offset=1&action=submit" https://en.wikipedia.org/w/index.php?title=Special:Export -o "somefilename.xml"
Die URL-Wurzel muss den MediaWiki-Parametern folgen... Beachte auch, dass du die curl-Parameter am Ende hinzufügen musst, um die Datei zu speichern. Andernfalls wird es nur auf deinem Bildschirm angezeigt und es wird nichts gespeichert. Derzeit befinden sich die Wikipedia-Server anscheinend in Wartung, weshalb die obige Methode einen Fehler anzeigt und nicht die XML-Datei ausgibt.
Wenn du stattdessen die Liste von Titeln in einer Datei hast, beispielsweise title-list
, musst du die Liste als einen Parameter an curl übergeben und den Zeilenvorschub korrekt codieren (--data-urlencode
und @
funktionieren aus irgendeinem Grund nicht):
curl -d "&action=submit&pages=$(cat title-list | hexdump -v -e '/1 "%02x"' | sed 's/\(..\)/%\1/g' )" https://en.wikipedia.org/w/index.php?title=Special:Export -o "somefilename.xml"
Wenn du Bandweite sparen möchtest, hänge auch folgende Argumente an:
--compressed -H 'Accept-Encoding: gzip,deflate'
Stoppen des Exports deines MediaWikis
Bitte denke daran, dass deine Benutzer demotiviert werden könnten, zu deinem Wikis beizutragen, wenn du es ihnen erschwerst, ihre Arbeit zu sichern.
Wenn $wgExportAllowHistory in LocalSettings.php auf falsch gesetzt ist, kann nur die aktuelle Version exportiert werden und nicht die ganze Versionsgeschichte.
Standardmäßig wird bei GET-Anfragen nur die aktuelle (letzte) Version jeder Seite ausgegeben.
Wenn der Parameter $wgExportAllowHistory in LocalSettings.php wahr ist und "Nur die aktuelle Version der Seite exportieren" nicht ausgewählt ist, werden alle Versionen jeder Seite ausgegeben.
Um den Export komplett zu deaktivieren, musst du in deiner LocalSettings.php eine Callback-Funktion setzen:
function removeExportSpecial(&$aSpecialPages)
{
unset($aSpecialPages['Export']);
return true;
}
$wgHooks['SpecialPage_initList'][] = 'removeExportSpecial';
Wenn du eine Berechtigung für den Export definieren möchtest, füge folgendes in deine LocalSettings.php ein:
// Überschreibt SpecialExport, was für MW1.35 funktioniert
// Die Parameter von __construct() werden in späteren Versionen geändert
class SpecialExport2 extends SpecialExport {
public function __construct() {
parent::__construct();
$this->mRestriction = 'export';
}
public function execute( $par ) {
$this->checkPermissions();
parent::execute( $par );
}
}
function adjustExportSpecial(&$aSpecialPages)
{
$aSpecialPages['Export'] = SpecialExport2::class;
return true;
}
$wgHooks['SpecialPage_initList'][] = 'adjustExportSpecial';
$wgGroupPermissions['sysop']['export'] = true; // Export-Berechtigung nur zu Administratoren hinzufügen
Denke daran, dass der Export weiterhin möglich ist, wenn du die API aktiviert hast.
Anmerkungen
- ↑ Wenn die Funktion im Ziel-Wiki aktiviert ist und der Benutzer dort Administrator ist. Der Export kann zur Analyse des Inhalts genutzt werden. Siehe auch Feeds für den Export anderer Informationen als Seiten und Help:Import zum Importieren von Seiten.
- ↑ 2.0 2.1 2.2 Diese Parameter werden ignoriert, wenn entweder
curonly
oderhistory
angegeben sind oder über eine GET-Anfrage (z. B. die Adressleiste des Browsers) übergeben werden. Siehe Anfragen mit URL-Parametern funktionieren nicht für weitere Informationen. - ↑ Die Reihenfolge richtet sich nach der page_id, wobei Seiten mit niedrigerer page_id mehr Versionen erhalten. Der Grund hierfür ist, dass Spezial:Export nur eine Datenbank-Abfrage je HTTP-Anfrage stellt. Wenn du die gesamte Versionsgeschichte von mehreren Seiten mit vielen Versionen abfragst, darfst du dies nur für je eine Seite tun.
- ↑ Diese Parameter-Konvention ähnelt sehr derjenigen für Versionsgeschichten in der Benutzeroberfläche.
Siehe auch