使用R自动读取用javascript编写的动态表的内容

使用R自动读取用javascript编写的动态表的内容,javascript,r,web-scraping,automation,rvest,Javascript,R,Web Scraping,Automation,Rvest,我使用的数据来自一个印度尼西亚网站,该网站由一个表组成,该表是用javascript动态生成的(不同年份和省份)。我尝试用R(使用R Studio)将其自动化。该网站是,该表位于子网站“箭头-->选项卡”(我无法直接提供指向该页面的链接,因为它是动态生成的) 我已经为这个问题搜索了一个api,但还没有找到。即使我点击页面,链接也不会更新。XPath(我通常用于web抓取)不起作用 我将非常感谢你的帮助 Croote是正确的,您将需要使用无头浏览器来触发所有必要的javascript代码。您可以尝

我使用的数据来自一个印度尼西亚网站,该网站由一个表组成,该表是用javascript动态生成的(不同年份和省份)。我尝试用R(使用R Studio)将其自动化。该网站是,该表位于子网站“箭头-->选项卡”(我无法直接提供指向该页面的链接,因为它是动态生成的)

我已经为这个问题搜索了一个api,但还没有找到。即使我点击页面,链接也不会更新。XPath(我通常用于web抓取)不起作用


我将非常感谢你的帮助

Croote是正确的,您将需要使用无头浏览器来触发所有必要的javascript代码。您可以尝试,例如,或者使用。

Croote是正确的,您将需要使用无头浏览器,该浏览器将为您触发所有必要的javascript代码。您可以尝试,例如,或者使用。

页面会根据您在表中的选择执行POST请求,其中body参数基于您在表中的选择。您需要探索参数。我认为参数很可能是按下拉列表的顺序出现的。下面是一个无需硒即可检索2018年数据的示例。我曾经在手动选择时监视web流量

library(httr)
library(rvest)
library(magrittr)

body <- list('vth' = 2018
             ,'vbl'=''
             ,'vtg'=''
             ,'vpr'=''
             ,'vkb'=''
             ,'vjn'=1)
r <- POST("http://bnpb.cloud/dibi/tabel1b",body = body)

t <- content(r) %>% html_node('#tbl') %>% html_table(fill = T)
库(httr)
图书馆(rvest)
图书馆(magrittr)

body页面执行POST请求,其中body参数基于您在表中的选择。您需要探索参数。我认为参数很可能是按下拉列表的顺序出现的。下面是一个无需硒即可检索2018年数据的示例。我曾经在手动选择时监视web流量

library(httr)
library(rvest)
library(magrittr)

body <- list('vth' = 2018
             ,'vbl'=''
             ,'vtg'=''
             ,'vpr'=''
             ,'vkb'=''
             ,'vjn'=1)
r <- POST("http://bnpb.cloud/dibi/tabel1b",body = body)

t <- content(r) %>% html_node('#tbl') %>% html_table(fill = T)
库(httr)
图书馆(rvest)
图书馆(magrittr)

身体你试过使用硒吗?你试过使用硒吗?谢谢,这很有帮助!我在弄清楚如何运行这个程序时遇到了一些问题,只收到了错误消息。有适合非计算机科学人士的快速教程吗?@JonathanOld你看过RSelenium软件包的最新版本了吗?谢谢,这很有帮助!我在弄清楚如何运行这个程序时遇到了一些问题,只收到了错误消息。有没有为非计算机科学人士提供的快速教程?@JonathanOld你看过RSelenium软件包的最新版本了吗?