我正在嘗試將網站上的表格放入 R。我目前正在運行的代碼是:
library(htmltab)
url1 <- 'https://covid19-dashboard.ages.at/dashboard_Hosp.html'
TAB<-htmltab(url1, which = "//table[@id = 'tblIcuTimeline']")
這是選擇正確的表格,因為變數是我想要的,但表格是空的。這可能是我的 XPath 的問題。我得到的錯誤是:
未提供編碼:默認為 UTF-8。節點 [[1]] 中的錯誤:下標越界
uj5u.com熱心網友回復:
該網站有一個方便的 JSON 檔案可用,您可以像這樣提取它:
library(jsonlite)
url <- "https://covid19-dashboard.ages.at/data/JsonData.json"
ll <- jsonlite::fromJSON(txt = url)
從那里你可以子集并提取你想要的東西。我的猜測是你在追求ll$CovidFallzahlen我的德語不太好,所以無法隔離你追求的確切值。
uj5u.com熱心網友回復:
問題是(可能)在直接訪問頁面時,表格是空的,必須在頁面加載時填充。但是在頁面的初始方法(使用您的代碼)時,表格仍然是空的。
下面是一種RSelenium生成all.table包含所有已填充表格的串列的方法。選擇您需要的那個。
要求:安裝了火狐
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/344945.html
