如何使用 rvest 在 R 中抓取这个网站?
How to scrape this website in R using rvest?
我正在尝试使用 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")
所有这些都应该 return 至少有一些文本内容,但它们看起来是空的。
我尝试使用 V8
来解释 javascript according to these instructions,但该站点似乎仅将 JS 用于界面元素,而不用于数据检索。
我也尝试通过 PhantomJS
following these instructions 运行 它,但由于权限问题无法 运行 脚本。
看来我需要对数据执行 GET 请求,但是 URL 我在网站的代码中发现 return 什么都没有: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()
我正在尝试使用 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")
所有这些都应该 return 至少有一些文本内容,但它们看起来是空的。
我尝试使用 V8
来解释 javascript according to these instructions,但该站点似乎仅将 JS 用于界面元素,而不用于数据检索。
我也尝试通过 PhantomJS
following these instructions 运行 它,但由于权限问题无法 运行 脚本。
看来我需要对数据执行 GET 请求,但是 URL 我在网站的代码中发现 return 什么都没有: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()