如何在R中使用revest抓取这个网站?



我正在尝试使用RVest抓取这个网站:https://www.camara.cl/legislacion/sesiones_sala/sesiones_sala.aspx

请注意,网站加载速度很快,但数据需要一些时间才能显示。我意识到,虽然内容在web浏览器检查器中显示为html文本,但使用rvest抓取时节点显示为空。

library(dplyr)
library(rvest)
camara <- "https://www.camara.cl/legislacion/sesiones_sala/sesiones_sala.aspx" %>% 
session()

camara %>% 
html_elements("h2")
camara %>% 
html_elements(".box-proyecto") 
camara %>% 
html_elements("#trabajo-en-sala") %>% 
html_elements("#info-tabs") %>% 
html_elements("#ajax-container") %>% 
html_elements("pnlTablaOrdinaria")

所有这些都应该至少返回一些文本内容,但它们显示为空。

我尝试使用V8根据这些说明来解释javascript,但该网站似乎仅将JS用于界面元素,而不是用于数据检索。

我也试图通过PhantomJS按照这些说明运行,但由于权限问题无法运行脚本。

似乎我需要对数据执行GET请求,但是我在网站代码中找到的URL没有返回任何内容:https://www.camara.cl/legislacion/sesiones_sala/tabla.aspx?_=1628291424652

我不能使用RSelenium,因为我是通过无头服务器远程工作的。

您需要从初始url获取一个会话cookie (ASP.NET_SessionId)。您可以使用session,例如:

library(rvest)
library(magrittr)
r <- session('https://www.camara.cl/legislacion/sesiones_sala/sesiones_sala.aspx') %>% 
session_jump_to('https://www.camara.cl/legislacion/sesiones_sala/tabla.aspx')
tables <- r %>% read_html() %>% html_table()

相关内容

  • 没有找到相关文章

最新更新