# Lag fullstendig visuell framtilling av nrk.no # Nødvendige pakkar library(RCurl) # For nedlasting av filer frå nettet library(scrapeR) # For tolking av (ugyldige) HTML-filer library(plyr) # For datahandtering # Ikkje gjer om tekst til faktorar automatisk options(stringsAsFactors=FALSE) # Lagra resultatet til denne fila filnamn="~/nrk.html" # Les inn nettsida nettside=scrape("http://www.nrk.no/") # Lag oversikt over bilde, artikkellenkjer og overskrifter for kvar artikkel med bilde # (ja, stygt og uelegant, og kan klart forbetrast!) artiklar = xpathApply(nettside[[1]], "//div[@class='article-content'][descendant::a[@href]][descendant::img[@class='article-image']]", function(artikkel) { c( unlist(xpathApply(artikkel, "descendant::img[1]", xmlAttrs)), list( lenkje = xpathSApply(artikkel, "descendant::a[@href][1]", function(x) getNodeSet(x, "@href", fun=as.character)[[1]]), tittel = paste0("", as.character(xpathSApply(artikkel, "descendant::h3", fun=xmlValue))) )) }) # Gjer artikkeloversikta om til ei dataramme artiklar.df = ldply(artiklar, as.data.frame) # Sorter etter bildehøgd artiklar.df = arrange(artiklar.df, desc(as.numeric(height))) # Fjern duplikatartiklar artiklar.df = subset(artiklar.df, !duplicated(lenkje)) # Lag klar HTML-kode for bilde + lenkjer bilde_html = paste(with(artiklar.df, paste0(' ',alt,'')), collapse="\n") # Lagra til HTML-fil cat( ' Visuell NRK.no ',bilde_html,' ', file=filnamn) # Vis i nettlesar system(paste("firefox", filnamn))