Abrufen einer Liste aller Wikipedia-Sprachen programmgesteuert

7

Ich muss eine Liste aller vorhandenen Sprachen für ein bestimmtes Wiki-Projekt abrufen. Zum Beispiel alle Wikivoyage oder alle Wikipedia Sprachen, genau wie auf ihren Zielseiten.

Ich bevorzuge dies über MediaWiki API , wenn es möglich ist.

Danke für Ihre Zeit.

    
Damjan Pavlica 09.11.2015, 12:06
quelle

3 Antworten

8

Ansatz 3: Verwenden einer API in der Wikimedia Wiki Farm und Erweiterung: Sitematrix

https://commons.wikimedia.org/w/api.php?action=sitematrix&smtype=language

Während dies alle Wikis zurückgibt, weiß die Matrix, dass sie auf der Client-Seite leicht gefiltert werden kann durch code [ab sofort eine der folgenden: wiki (Wikipedia), wiktionary , wikibooks , wikinews , wikiquote , wikisource , wikiversity , wikivoyage ] und durch seinen closed -Zustand. Eine Anfrage mit nur ein paar Response-Body-Overhead, aber da es leicht zwischengespeichert und gut komprimiert werden kann, nicht das dienen.

    
Rainer Rillke 14.11.2015, 18:15
quelle
7

Ansatz 1: Verwenden einer API in der Wikimedia Wiki-Farm

Um alle Interwiki-Präfixe zu erhalten, die ein Wiki kennt, verwenden Sie das Meta-Modul der MediaWiki-API und fragen jedes Projekt nach siprop=interwikimap :

ab %Vor%

Sie erhalten eine große Anzahl von Objekten wie folgt:

%Vor%

protorel sagt dir, ob die URL protokollabhängig ist oder nicht (zB beginnend mit // . Für die WikiMedia-Wikis beginnen sie mit https . Das in der URL ist, wie du es getan hättest vorgestellt, ein Platzhalter für den Titel.

Um nur die Wikis in der selben Wikifarm zu erhalten (zB Wikimedia Wikis ), fügen Sie hinzu sifilteriw=local zu Ihrer Anfrage:

%Vor%

Um die Namen in Ihrer langue abzurufen, verwenden Sie siinlanguagecode , so (dies sind alle Wikimedia-Wikis mit ihren schwedischen Namen, die aus der arabischen Wikipedia stammen, aber jeder Endpunkt in der Wiki-Farm sein könnte):

%Vor%

Von hier aus müssten Sie z. die Wikipedias selbst.

Ansatz 2: Verwenden von Wikistats bei wmflabs

Eine bereits nach Art des Projekts gefilterte Liste finden Sie unter Ссылка (csv), wo Sie Wikipedia, Wikiversity usw. herausfiltern können. Die CSV-Datei wird täglich aktualisiert, aber das Tool ist experimentell und möglicherweise nicht für immer da.

Bei jedem Ansatz werden Wikimedia Incubator-Wikis nicht angezeigt.

    
leo 09.11.2015 12:14
quelle
3

Subtrahieren Sie closed.dblist von wikipedia.dblist ( andere Listen ), entfernen Sie dann wiki vom Ende und Ersetzen Sie _ durch - .

    
Tgr 12.11.2015 06:43
quelle