Соскоб Javascript с Рвест - PullRequest
       7

Соскоб Javascript с Рвест

0 голосов
/ 03 апреля 2020

Я пытался очистить временные ряды опроса с веб-сайта, который сохраняется как javascript. До сих пор я получаю пустой список после выбора узлов «круга». Код ниже, любая точка очень ценится.

library(rvest)
library(V8)

url = 'https://www.politico.eu/europe-poll-of-polls/belgium/'

dta = read_html(url) %>% 
  html_node('svg') %>% 
  html_node('g') %>% 
  html_node('circle')

1 Ответ

0 голосов
/ 03 апреля 2020

Это на самом деле очень просто. Данные поступают с конечной точки json, которую вы можете найти на вкладке сети

library(jsonlite)

data <- jsonlite::read_json('https://www.politico.eu/wp-json/politico/v1/poll-of-polls/BE-parliament')
info <- data$polls

Вы можете преобразовать в фрейм данных. Например:

library(purrr)

df <- map_df(info, function(x) {

  data.frame(date = x$`date`,
             party = x$parties,
             stringsAsFactors=FALSE)
})

names(df) <- gsub( 'party.','',names(df))

Вы всегда можете транспонировать и выполнять любые другие преобразования и т.д. c, которые вы хотите, например

df <- t(df)
...