r - 使用 htmltab 从 html 获取表格
问题描述
我正在尝试从网站获取一张表格到 R 中。我目前正在运行的代码是:
library(htmltab)
url1 <- 'https://covid19-dashboard.ages.at/dashboard_Hosp.html'
TAB<-htmltab(url1, which = "//table[@id = 'tblIcuTimeline']")
这是选择正确的表,因为变量是我想要的,但表是空的。我的 XPath 可能有问题。我得到的错误是:
未提供编码:默认为 UTF-8。节点 [[1]] 中的错误:下标超出范围
解决方案
问题是(很可能)在页面直接接近时,表格是空的,必须在页面加载时填充。但是在页面的初始方法(使用您的代码)中,表格仍然是空的。
下面是一种RSelenium
方法,它会生成一个all.table
包含所有已填充表格的列表。选择你需要的那个。
要求:已安装firefox
library(RSelenium)
library(rvest)
library(xml2)
#setup driver, client and server
driver <- rsDriver( browser = "firefox", port = 4545L, verbose = FALSE )
server <- driver$server
browser <- driver$client
#goto url in browser
browser$navigate("https://covid19-dashboard.ages.at/dashboard_Hosp.html")
#get all tables
doc <- xml2::read_html(browser$getPageSource()[[1]])
all.table <- rvest::html_table(doc)
#close everything down properly
browser$close()
server$stop()
# needed, else the port 4545 stays occupied by the java process
system("taskkill /im java.exe /f", intern = FALSE, ignore.stdout = FALSE)
推荐阅读
- python - 如何以pythonic方式移动文件?
- angular - 角度动态formArray找不到控件
- python - 如何在 Python 的每次迭代中使用 for 循环内的 TopLevel Tkinter 显示和更新包含结果的消息或标签?
- powershell - 查询扩展属性 1 失败空变量
- sql - 如何删除这种类型的表名 [someprefix].table
- r - 更改 ggplot2 中的顺序
- php - CakePHP 未更新数据库中的完整数组
- c# - 如何从 C# 中的 API 创建的 IList 中检索数据
- javascript - 未捕获的类型错误:与 html 一起使用时无法读取 null 的属性“querySelector”
- html - Microsoft Edge 日期输入显示两次值