Funktion

Für eine Seite article werden die Pageviews pro Tag für einen Monat month (Voreinstellung: aktueller Monat, Format YYYYMM). Informationen zur Website, über die die Daten aufgerufen werden, finden sich hier: http://stats.grok.se/.

f_wikiviews = function(language="de", month=paste0(format(Sys.time(), "%Y"), format(Sys.time(), "%m")), article, verbose=F) {
  if(verbose) print(article)
  URL = paste0(c("http://stats.grok.se/json", language, month, article), collapse="/")
  dmp = getURLContent(URL)
  dmp = fromJSON(dmp)
  dmp2 = data.frame(views=do.call(rbind, dmp$daily_views))
  #   dmp2$date = as.Date(rownames(dmp2))
  dmp2$date = rownames(dmp2)
  dmp2$article = article
  dmp2$project = language
  dmp2
}

Anwendung

Pageviews des Artikels “Grippeimpfung” im September 2014

f_wikiviews(article = "Grippeimpfung", month = 201409)
##            views       date       article project
## 2014-09-19   292 2014-09-19 Grippeimpfung      de
## 2014-09-18   432 2014-09-18 Grippeimpfung      de
## 2014-09-30   591 2014-09-30 Grippeimpfung      de
## 2014-09-15   369 2014-09-15 Grippeimpfung      de
## 2014-09-14   166 2014-09-14 Grippeimpfung      de
## 2014-09-17   352 2014-09-17 Grippeimpfung      de
## 2014-09-16   434 2014-09-16 Grippeimpfung      de
## 2014-09-11   317 2014-09-11 Grippeimpfung      de
## 2014-09-10   341 2014-09-10 Grippeimpfung      de
## 2014-09-13   125 2014-09-13 Grippeimpfung      de
## 2014-09-12   277 2014-09-12 Grippeimpfung      de
## 2014-09-26   433 2014-09-26 Grippeimpfung      de
## 2014-09-20   128 2014-09-20 Grippeimpfung      de
## 2014-09-21   213 2014-09-21 Grippeimpfung      de
## 2014-09-22   455 2014-09-22 Grippeimpfung      de
## 2014-09-23   544 2014-09-23 Grippeimpfung      de
## 2014-09-24   527 2014-09-24 Grippeimpfung      de
## 2014-09-25   600 2014-09-25 Grippeimpfung      de
## 2014-09-08   234 2014-09-08 Grippeimpfung      de
## 2014-09-09   300 2014-09-09 Grippeimpfung      de
## 2014-09-06   108 2014-09-06 Grippeimpfung      de
## 2014-09-07   130 2014-09-07 Grippeimpfung      de
## 2014-09-04   227 2014-09-04 Grippeimpfung      de
## 2014-09-05   201 2014-09-05 Grippeimpfung      de
## 2014-09-02   229 2014-09-02 Grippeimpfung      de
## 2014-09-03   458 2014-09-03 Grippeimpfung      de
## 2014-09-01   213 2014-09-01 Grippeimpfung      de
## 2014-09-28   179 2014-09-28 Grippeimpfung      de
## 2014-09-27   179 2014-09-27 Grippeimpfung      de
## 2014-09-29   506 2014-09-29 Grippeimpfung      de

Pageviews des Artikels “Grippeimpfung” seit Januar 2009

# Erstellen einer Liste mit allen Monaten
dts = seq.Date(as.Date("2009-01-01"), as.Date("2014-09-01"), "month")
dts = sapply(dts, function(x) paste0(format(x, "%Y"), format(x, "%m")))
grippeimpfung.views = do.call(rbind, lapply(dts, function(i) f_wikiviews(article = "Grippeimpfung", month = i)))
nrow(grippeimpfung.views) #Inkonsistenz der Pseudo-API: Jeder Monat hat 31 Tage
## [1] 2137
grippeimpfung.views$date = as.Date(grippeimpfung.views$date) #Entfernen der nicht existenten Tage
table(is.na(grippeimpfung.views$date)) # 38 ungültige Tage
## 
## FALSE  TRUE 
##  2099    38
nrow(na.omit(grippeimpfung.views)) # 2099 gültige Tage
## [1] 2099
head(grippeimpfung.views)
##            views       date       article project
## 2009-01-29   406 2009-01-29 Grippeimpfung      de
## 2009-01-19   672 2009-01-19 Grippeimpfung      de
## 2009-01-18   407 2009-01-18 Grippeimpfung      de
## 2009-01-13  1059 2009-01-13 Grippeimpfung      de
## 2009-01-12   802 2009-01-12 Grippeimpfung      de
## 2009-01-11   353 2009-01-11 Grippeimpfung      de