From 7db0c9754a2dbf3240e68f9c0a44bb7748b29021 Mon Sep 17 00:00:00 2001 From: flavis Date: Thu, 24 Jun 2021 13:27:20 +0200 Subject: [PATCH] replace rcurl with rvest --- scraping/fetch.R | 57 ++---------------------------------------------- 1 file changed, 2 insertions(+), 55 deletions(-) diff --git a/scraping/fetch.R b/scraping/fetch.R index 1533634..21a7954 100644 --- a/scraping/fetch.R +++ b/scraping/fetch.R @@ -1,6 +1,6 @@ source("../utils/helpers.R") source("config.R") -library(RCurl) +library(rvest) library(stringr) mk_absolute_url <- function(path) paste0("https://www.bundestag.de", path) @@ -17,7 +17,7 @@ download_protocol <- function(path, name) { fetch_batch <- function(offset) { url <- mk_url(offset) - res <- getURL(url) + res <- as.character(read_html(url)) paths <- str_match_all(res, "/resource/blob/.*?/([0-9]*-data\\.xml)")[[1]] mapply(download_protocol, paths[,1], paths[,2]) return(length(paths) > 0) @@ -30,56 +30,3 @@ fetch_all <- function() { offset <- 0 while(fetch_batch(offset)) offset <- offset + 10 } - - -#______________________________________________________________________________ - -#Auf diese Weise funktioniert das Programm bei mir, da kein RCurl mehr -#verwendet wird. Es ist allerdings nicht mehr so schön und die Idee dazu hat -#mir Daniela gegeben. Im Grunde ist es sehr ähnlich zu dem Live-Blatt L04. - -#Das Programm gibt mir eine Liste von allen Protokollen der 19. Wahlperiode -#zurück (falls man return(all_protocols) entkommentiert). - -#Ich verstehe noch nicht so richtig wie man die Protokolle dann abspeichert -#(die for-Schleife zum Download läuft deswegen noch nicht ganz, sollte aber -#relativ leicht zum laufen gebracht werden, wenn man weiß, wie die Dateien -#abzuspeichern sind). - -source("../utils/helpers.R") -source("config.R") -library(stringr) -library("xml2") -library(rvest) - -mk_absolute_url <- function(path) paste0("https://www.bundestag.de", path) - -mk_url <- function(offset) { - mk_absolute_url %$% sprintf("/ajax/filterlist/de/services/opendata/543410-543410?offset=%d", - offset) -} - -read <- function(offset){ - read_html(mk_url(offset)) -} - -fetch_batch <- function(offset){ - read(offset) %>% - html_elements("a") %>% - html_attr("href") -> - paths - protocols <- mk_absolute_url(paths) - all_protocols <<- c(all_protocols, protocols) - return(length(paths) > 0) -} - -fetch_all <- function(){ - all_protocols <<- c() - offset <- 0 - while(fetch_batch(offset)) offset <- offset + 10 - for(i in 1:length(all_protocols)){ - download.file(all_protocols[i], paste0(DOWNLOAD_DIR, i)) #cannot open destfile '../data/1', reason 'No such file or directory' - #verstehe noch nicht so richtig unter welchem Pfad ich das abspeichern muss - } -# return(all_protocols) -}