问题描述
我在需要登录才能访问的论坛上从 JSON 文件读取数据时遇到问题。
我正在使用 rvest 包并在登录后读取 html 页面,此代码运行良好。但我怀疑我是如何使用用户已经注册的同一个会话读取 JSON 文件的。
library(rvest)
library(httr)
url <- "https://forum.com/"
pgsession <- html_session(url)
pgform <- html_form(pgsession)[[1]]
filled_form <- set_values(pgform,"username" = "username","password" = "password")
submit_form(pgsession,filled_form)
events <- jump_to(pgsession,"https://forum.com/events.PHP")
page <- html(events)
data_usernames <- html_text(page,trim = FALSE)
有什么方法可以使用会话读取 Json 吗?我怎样才能使下面的代码工作
urlJson <- "https://forum.com/events.json"
data = jsonlite::fromJSON(urlJson,simplifyDataFrame = TRUE)
df <- as.data.frame(data$data)
解决方法
好吧,我想通了。基本上使用带有 session 和 parse_json 的 jump_to 方法而不是 fromJSON 一切都按我想要的方式工作。
jsonSession <- pgsession %>% jump_to(urlJson)
data <- jsonlite::parse_json(jsonSession$response,simplifyVector = TRUE)
df <- as.data.frame(data$data)