Es werden n1
(maximal 10) zufällige Artikel aus einem Namensraum namespace
gezogen. namespace=0
entspricht dem Artikelnamensraum, also den “normalen” Wikipedia-Artikeln. Eine Dokumentation der Namensräume findet sich hier: http://www.mediawiki.org/wiki/Manual:Namespace. Eine Dokumentation der Parameter für den API Aufruf GET(..., query=list(...))
findet sich hier: https://www.mediawiki.org/wiki/API:Random.
f_get_randompages = function(n1=10, language="de", namespace=0) {
domain = paste0("http://", language, ".wikipedia.org/w/api.php") #URL der API einer Wikipedia-Sprachversion
dmp = GET(domain, query=list( #Konstruktion des API Aufrufs
format = "json",
action = "query",
list = "random",
rnnamespace = namespace,
rnlimit = n1))
dmp = content(dmp, as = "text") #Abruf des Ergebnisses der API Abfrage
dmp = RCurl:::mapUnicodeEscapes(dmp) #Codierung der Unicode Escape Characters
dmp = fromJSON(dmp) #Umwandlen des json Objekts in R kompatible Daten
dmp$query$random ##Auswahl des relevanten data.frame
}
Die Funktion liefert einen data.frame mit ID, Namensraum und Titel des Artikels.
f_get_randompages(n1 = 10, namespace = 0)
## id ns title
## 1 6945829 0 Rock Grove Township (Illinois)
## 2 4585892 0 Bayerisches Landesamt für Maß und Gewicht
## 3 6692055 0 Team SpiderTech-C10/Saison 2011
## 4 1894380 0 Bertolini
## 5 2734766 0 Jürgen Baumert
## 6 632066 0 Honda Logo
## 7 1566259 0 Vielkerbige Mehlbeere
## 8 3556987 0 Alesco
## 9 919184 0 Aqueduc de Saint-Clément
## 10 681180 0 Ernst von Waldthausen
Da mit der MediaWiki API maximal 10 Seiten in einem Aufruf gezogen werden können, müssen wir die Funktion für größere Stichproben mehrmals ausführen. Da jeweils aus allen Seiten des Namensraums gezogen wird, handelt es sich streng genommen um mehrfaches Ziehen mit Zurücklegen. Praktisch sollte dies angesichts der sehr großen Zahl der Elemente in der Grundgesamtheit selbst bei mittelgroßen Stichproben jedoch irrelevant sein.
Zum Beispiel 100 Artikel:
sample100 = do.call(rbind, replicate(10, f_get_randompages(n1 = 10, namespace = 0), simplify = F))
nrow(sample100)
## [1] 100
sample100$title
## [1] "Samtgemeinde Emlichheim"
## [2] "Jura-Cement-Fabriken"
## [3] "Planetentransit"
## [4] "Burgruine Schiffelbach"
## [5] "Þ"
## [6] "Konjugation (Mathematik)"
## [7] "Humud bin Abbas al-Muʾayyad"
## [8] "Rettungsmedaille (Bayern)"
## [9] "Vermont (Begriffsklärung)"
## [10] "Achammer"
## [11] "Rödeser Berg"
## [12] "Bruno Tesch"
## [13] "Logba (Volk)"
## [14] "Memento Mori (Band)"
## [15] "John Baptist Lee Keh-mien"
## [16] "Kurt Klotzbach"
## [17] "Liste der armenischen Meister im Schach"
## [18] "Kitipon Kitikul"
## [19] "George Stevenson Wallace"
## [20] "Christof Weil"
## [21] "Frank-Michael Wiegand"
## [22] "Kotscherigin OPB"
## [23] "Jersey Devil"
## [24] "Hans Darmstadt"
## [25] "Tierregen"
## [26] "Aziza A."
## [27] "Advanta Championships 2005"
## [28] "Andrea Lüdke"
## [29] "Mike Schneeberger"
## [30] "Katzendarm (Magdeburg)"
## [31] "Stenotachygraphie"
## [32] "Mitterdorfer"
## [33] "Abuta"
## [34] "Arkadi Iwanowitsch Melua"
## [35] "Ruth Ratter"
## [36] "Die Dreigroschenoper (1931)"
## [37] "Main-Drop"
## [38] "Stade Adrar"
## [39] "Bauherr"
## [40] "Ahmet Kesim"
## [41] "Südliche Shetlandinseln"
## [42] "Europatanker"
## [43] "Tetsugyū Dōki"
## [44] "Leuterod"
## [45] "St. Anna (Lenhausen)"
## [46] "John Myung"
## [47] "Kommunikationsregulierungsbehörde von Namibia"
## [48] "Rotwangen-Waldsalamander"
## [49] "Wlado Tschernosemski"
## [50] "Dario José dos Santos"
## [51] "Schlacht von Jilib"
## [52] "Liste der Kursbuchstrecken in Rumänien"
## [53] "Biocomputer"
## [54] "Rákóczi-Brücke"
## [55] "Little League World Series 2011"
## [56] "Joseph Kesselring"
## [57] "Nomentano – San Lorenzo"
## [58] "Fritz Fuhrich"
## [59] "Vladimir Kozlov"
## [60] "Swerdlowskaja schelesnaja doroga"
## [61] "Antonio Cifra"
## [62] "Liste der Abgeordneten zum Kärntner Landtag (2. Wahlperiode)"
## [63] "Andreas Martin (Lautenist)"
## [64] "Erpe (Flandern)"
## [65] "Charles Jones (Komponist)"
## [66] "Kirk Stevens"
## [67] "Norbert Wolscht"
## [68] "Dixie Jamboree"
## [69] "Capriccio"
## [70] "Vlaardingen"
## [71] "Heisenberggruppe"
## [72] "Diphtherietoxin"
## [73] "Fran Cotton"
## [74] "Alfonso Lara"
## [75] "Noboru Iguchi"
## [76] "Marie-Victoire Jaquotot"
## [77] "Zehnthofstraße (Düren)"
## [78] "Patrick Soon-Shiong"
## [79] "Liste der Baudenkmäler in Röthlein"
## [80] "Liste der Naturdenkmale in Berg (Pfalz)"
## [81] "Rafael Ansón"
## [82] "Mike Scheweleit"
## [83] "Benjamin L. Fairchild"
## [84] "Lake St. Clair (Nordamerika)"
## [85] "Reinhold Backmann"
## [86] "Schönste, liebe mich"
## [87] "Bielawy"
## [88] "Harold G. Hoffman"
## [89] "Handball-DDR-Oberliga (Frauen) 1985/86"
## [90] "Route nationale 400"
## [91] "Nationalkirche"
## [92] "Aiching"
## [93] "Krista Kalmus"
## [94] "Susanne Albers"
## [95] "Schifffahrtskaufmann"
## [96] "Sankt Martin"
## [97] "Breath (Kurzfilm)"
## [98] "Philipp Kaiser"
## [99] "Nebeltrinker-Käfer"
## [100] "I Have a Dream"