Zunächst setzen Sie einen eindeutigen Benutzer-Agenten, da Reddit dies mag
options(HTTPUserAgent="Mein Name ist BOB")
Ich gehe davon aus, dass Sie den Inhalt unter http://www.reddit.com/r/leagueoflegends/ abrufen möchten. Sie müssen eine .json
an die URL anhängen:
library(RJSONIO)
library(RCurl)
# library(XML)
jdata<-getURL('http://www.reddit.com/r/leagueoflegends/.json')
jdata<-fromJSON(jdata)
# xdata<-getURL('http://www.reddit.com/r/leagueoflegends/.xml')
# xdata<-xmlParse(xdata)
Offensichtlich ist der Inhalt sehr umfangreich, z.B. die Domains, Permalinks, Autoren, Titel der Beiträge:
Domains<-sapply(jdata[[2]]$children,function(x){x$data$domain})
permalinks<-sapply(jdata[[2]]$children,function(x){x$data$permalink})
authors<-sapply(jdata[[2]]$children,function(x){x$data$author})
titles<-sapply(jdata[[2]]$children,function(x){x$data$title})
ids<-sapply(jdata[[2]]$children,function(x){x$data$id})
created<-as.POSIXct(sapply(jdata[[2]]$children,function(x){x$data$created}),origin="1970/01/01")
> head(titles)
[1] "Pendragon 3-day-banning someone for randoming in ranked, or saying hes going to. Mixed feelings..."
[2] "Dig Kicks L0cust."
[3] "Summoners, y u no communicate??"
[4] "Without Even Trying"
[5] "Cross Country Tryndamere (Chaox Stream)"
[6] "Top 5 Flops - Episode 4 ft Dyrus, Phantoml0rd, and HatPerson vs Baron Nashor"
>
Um zu untersuchen, wie diese IDs generiert werden, können wir @Ben Bolkers Funktion base36ToInteger
auf die gesammelten IDs anwenden und sie mit dem Datum ihres Erstellungszeitpunkts vergleichen:
createData<-data.frame(created=created,ids=sapply(ids,base36ToInteger))
> dput(createData)
structure(list(created = structure(c(1342658844, 1342657298,
1342622962, 1342643655, 1342641187, 1342654768, 1342665353, 1342640599,
1342648272, 1342662822, 1342654185, 1342659591, 1342624350, 1342647907,
1342637587, 1342591960, 1342625515, 1342642330, 1342651384, 1342668363,
1342608976, 1342608165, 1342632545, 1342638611, 1342643489), class = c("POSIXct",
"POSIXt")), ids = c(55047001, 55044612, 55010018, 55025557, 55022809,
55040754, 55056689, 55022221, 55031424, 55053023, 55039810, 55048123,
55010880, 55030934, 55019343, 54976515, 55011555, 55024060, 55035670,
55061120, 54998192, 54997264, 55015528, 55020295, 55025363)), .Names = c("created",
"ids"), row.names = c("wrujd", "wrsp0", "wr202", "wrdzp", "wrbvd",
"wrppu", "ws20h", "wrbf1", "wriio", "wrz6n", "wrozm", "wrvej",
"wr2o0", "wri52", "wr973", "wqc5f", "wr36r", "wrcu4", "wrlsm",
"ws5fk", "wqsvk", "wqs5s", "wr694", "wr9xj", "wrdub"), class = "data.frame")
was darauf hindeutet, dass Reddit diese Nummern sequenziell auf der gesamten Website generiert, während neue Beiträge erstellt werden.
Ohne eine spezifische Anweisung werde ich es dabei belassen, aber hoffentlich verstehen Sie das Konzept.