r - 如何将 html 表导入 R?
问题描述
我只是想将一个 html 表导入 R。我尝试了其他人的错误并广泛研究了给出的解决方案,尽管我的问题仍然存在。我知道这很容易,但是由于某种原因,它对我不起作用。我收到以下错误:
错误:无法加载外部实体“http://www.formula1.com/en/results.html/2020/races/1045/austria/race-result.html”(对于第一个函数)
(函数(类,fdef,mtable)中的错误:无法为签名'“NULL”'找到函数'readHTMLTable'的继承方法(第二个)
正如我所提到的,我已经查看了其他人的问题并尝试使用他们的解决方案来解决我的问题,尽管同样的问题仍然存在。也许这可能是由于我的设置(我不确定),但是有人可以帮助我吗?
library(XML)
library(rjson)
library(RCurl)
library(htmltools)
url<- "http://www.formula1.com/en/results.html/2020/races/1045/austria/race-result.html"
austria = readHTMLTable(url, which=1)
tabs <- getURL("http://www.formula1.com/en/results.html/2020/races/1045/austria/race-result.html")
tabs1 <- readHTMLTable(tabs, which=1)
解决方案
在rvest
您可以使用html_table
从页面获取表格:
library(rvest)
url <- 'https://www.formula1.com/en/results.html/2020/races/1045/austria/race-result.html'
url %>%
read_html %>%
html_table() %>%
.[[1]] -> df
df
# Pos No Driver
#1 NA 1 77 Valtteri\n Bottas\n BOT
#2 NA 2 16 Charles\n Leclerc\n LEC
#3 NA 3 4 Lando\n Norris\n NOR
#4 NA 4 44 Lewis\n Hamilton\n HAM
#5 NA 5 55 Carlos\n Sainz\n SAI
#6 NA 6 11 Sergio\n Perez\n
#...
#...
# Car Laps Time/Retired PTS
#1 Mercedes 71 1:30:55.739 25 NA
#2 Ferrari 71 +2.700s 18 NA
#3 McLaren Renault 71 +5.491s 16 NA
#4 Mercedes 71 +5.689s 12 NA
#5 McLaren Renault 71 +8.903s 10 NA
#6 Racing Point BWT Mercedes 71 +15.092s 8 NA
#...
#...
推荐阅读
- reactjs - Reactjs 使用带有嵌套路由的 Context Api 不共享状态
- amazon-web-services - AWS Aurora 集群的 Terraform 导入
- javascript - 是否可以即时切换画布 globalCompositeOperation?
- c++ - 如何在 OpenGL 2D 中设置垂直速度?
- javascript - JavaScript中具有任意长度格式规范的字符串到日期对象?
- laravel - 如何在我的本地计算机上从 Cpanel 运行 Laravel 下载的项目
- ios - 钱包通行证和推送通知
- angular - 如何使用 Angular 打开另一个组件而不显示第一个组件?
- data-modeling - 对 ERD 中的 One、One 和 Only One 之间的区别感到困惑
- html - SVG 文件和 ExpressJS