Зачистка ссылок на другие сайты на защищенном паролем сайте с Rvest - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь очистить список ссылок на нескольких страницах на следующем веб-сайте, который защищен паролем. У меня есть подписка на сайт. 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/")

Любая помощь будет принята с благодарностью!

Спасибо.

...