Если вы преобразуете свою сумму в al oop, вы обнаружите, что именно URL в позиции 23 в urls_20min
вызывает проблему. Это рекламная ссылка, отсюда и перенаправления. Вы можете просто grepl
выводить любые URL-адреса с "промо", и это прекрасно работает:
library(rvest)
library(tidyverse)
library(dplyr)
api20min <- read_xml('https://api.20min.ch/rss/view/1')
urls_20min <- api20min %>% html_nodes('link') %>% html_text()
urls_20min <- urls_20min[-c(1:2)]
no_promo <- !grepl("promo", urls_20min)
zeit_20min <- api20min %>% html_nodes('pubDate') %>% html_text()
titel_20min <- api20min %>% html_nodes('title') %>% html_text()
titel_20min <- titel_20min[-c(1:2)]
df20min_titel_zeit_link <- data.frame(urls_20min,zeit_20min,titel_20min)[no_promo,]
df20min_text <- do.call(rbind,
lapply(urls_20min[no_promo],
function(x) {
paste0(read_html(x) %>%
html_nodes('.story_text p') %>%
html_text(),
collapse = "\n\n")}))
df_20min <- data.frame(df20min_titel_zeit_link, df20min_text)
Результат слишком велик, чтобы показать, но вот его структура:
str(df_20min)
#> 'data.frame': 111 obs. of 4 variables:
#> $ urls_20min : Factor w/ 112 levels "https://beta.20min.ch/story/269082903107?legacy=true",..: 44 78 93 49 81 76 91 70 95 4 ...
#> $ zeit_20min : Factor w/ 111 levels "Fri, 10 Apr 2020 03:00:00 GMT",..: 98 89 61 90 105 99 109 84 82 83 ...
#> $ titel_20min : Factor w/ 112 levels " : Die Bilder des Tages",..: 44 48 55 76 16 20 6 17 112 63 ...
#> $ df20min_text: Factor w/ 87 levels "","\n\n","\n\n(20 Minuten)",..: 62 44 48 71 64 43 83 39 30 1 ...