用 rvest 抓取 Javascript
Scraping Javascript with rvest
我一直在尝试从另存为 javascript 的网站上抓取投票时间序列。到目前为止,我在选择 "circle" 节点后得到一个空列表。下面的代码,任何一点都非常感谢。
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')
其实很简单。数据来自 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))
您可以随时转置并进行任何其他您想要的变换等,例如
df <- t(df)
我一直在尝试从另存为 javascript 的网站上抓取投票时间序列。到目前为止,我在选择 "circle" 节点后得到一个空列表。下面的代码,任何一点都非常感谢。
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')
其实很简单。数据来自 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))
您可以随时转置并进行任何其他您想要的变换等,例如
df <- t(df)