我试着从以下网站上拼凑出一张立法者的表格:https://www.legis.ga.gov/members/house
首先,我尝试了Rvest,但没有工作,因为页面是动态生成的。
library(rvest)
url <- 'https://www.legis.ga.gov/members/house'
page = read_html(url)
page %>%
html_element("table") %>%
html_table()
#Error in View : no applicable method for 'html_table' applied to an object of class "xml_missing"
然后我试了rselenium。那不起作用,因为它不能确定服务器状态。
library(RSelenium)
rD = rsDriver(browser="chrome", port=4234L, chromever="109.0.5414.74")
#Warning message:
#In rsDriver(browser = "chrome", port = 4234L, chromever = "109.0.5414.74") :
# Could not determine server status.
library(wdman)
selServ <- wdman::selenium(verbose = FALSE)
selServ$log()
#$stderr
#[1] ""
#
#$stdout
#[1] ""
然后我试着安装Splash包,我得到了这个警告:
"安装包中的警告:包'splashr'不适用于此版本的R "
看看其他的Stackoverload问题,一些人建议下载一个叫做Docker的东西(例如,How to set up rselenium for R?)。但是看起来每次我需要抓取一些东西时,这都需要启动Docker并执行几个复杂的步骤。为了抓取一个表而执行所有这些步骤是没有意义的。如果没有必要,我也会怀疑下载软件。刮这张table最简单的方法是什么?我是不是漏掉了一些我应该做的明显的事情?
供参考:我在macOS Ventura,R版本4.2.0上使用的是Chrome版本109.0.5414.119。
1条答案
按热度按时间enyaitl31#
从网络部分嗅探他们的API并使用
httr2
调用它