javascript - 使用 rvest 抓取 Javascript
问题描述
我一直在尝试从保存为 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')
解决方案
这实际上很容易。数据来自您可以在网络选项卡中找到的 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)
推荐阅读
- python - Python,Oracle_cx,使用查询结果作为参数列表进入循环插入语句
- django - Django 在 Javascript 文件中调用 HttpResponse 视图
- python-3.x - 我无法生成带有某些图像的词云
- matlab - 导入日期时间并在绘图上转换为分钟
- javascript - 检查对象数组是否包含某个键
- git - 如何重新推送 Git 中的所有分支?(不仅仅是当地的分支机构)
- python - 让 tensorflow 和 keras 在 GPU 上运行
- php - 如何从产品表和订单表中减去值?
- python - 如何在 Python 中检测 Ctrl+Key 而无需下载其他模块?
- python-3.6 - Discord Bot python 3.6 报告命令