从 R 中受密码保护的论坛中抓取 JSON

问题描述

我在需要登录才能访问的论坛上从 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)