Я пытаюсь очистить список ссылок на нескольких страницах на следующем веб-сайте, который защищен паролем. У меня есть подписка на сайт.
https://policinginsight.com/media-monitor/
Я написал приведенный ниже код, который собирает все ссылки во фрейме данных.
library(plyr)
library(rvest)
library(tidyverse)
library(stringr)
library(dplyr)
library(purrr)
url_base = ("https://policinginsight.com/media-monitor/page")
#number of pages
l_out = 100
urls = paste0(url_base, seq(0, by = 20, length.out = l_out))
#function for nodes
parse_overview = function (x){
tibble(Date = html_text(html_nodes(x, ".td-
data"), TRUE),
Text = html_text(html_nodes(x, ".td-
link a"), TRUE),
Link = html_attr(html_nodes(x, xpath =
"//td/a"), "href"))
}
#function to trim space
collapse_to_text = function(x){
p = html_text(x, trim = TRUE)
p = p[p != ""] #drop empty lines
paste(p,collapse = "\n")
}
#function to get text from links
parse_result <- function(x){
tibble(Article = html_text(html_node(x, "p"),
trim = TRUE))
}
#put links in df links in df
overview_content = urls %>%
map(read_html)%>%
map_df(parse_overview)
Этот последний раздел предназначен для очистки ссылок, но результат очистки просто дает фрейм данных со всеми строками с надписью «Премиум подписка (годовая)»
#scrape links in df
detail_content <- (links_1$links) %>%
map(read_html) %>%
map_df(parse_result)
#create df of both
out <- bind_cols(overview_content,
`enter code here`detail_content)
Я использовал следующий код для доступа к сайту с моим паролем, но, похоже, он дает тот же результат, что и выше.
#login
url <- "https://policinginsight.com/log-in/"
session <- html_session(url)
form <- html_form(read_html(url))[[1]]
filled_form <- set_values(form,
"login[user_email]" = "email",
"login[user_password]" = "password")
submit_form(session, filled_form)
url <- jump_to(session, "https://policinginsight.com/media-monitor/")
Любая помощь будет принята с благодарностью!
Спасибо.