如何从HTML网页中选择特定的单词以附加到R中的数据框?

时间:2019-07-01 15:04:41

标签: html r dataframe

我正在构建此抓取工具,以从以下网页提取游戏数据:https://www.basketball-reference.com/boxscores/201410280LAL.html,该抓取工具将为本次比赛的主队和客队提取所有信息,但未指明玩家的实际球队名称只为他们的名字和数据而战

下面是到目前为止我的抓取工具,它可以提取主队和客队的基本和高级统计数据,将其整形为数据框,并删除不是球员姓名及其统计数据或球队总数的行,并将适当的列转换为它们各自的变量类型。

library(rvest)
library(xml2)
library(purrr)
library(dplyr)
url <- "https://www.basketball-reference.com/boxscores/201410280LAL.html"
webpage <- read_html(url)
tbls <- webpage %>% html_nodes("table") %>% html_table(header = FALSE, fill = TRUE) 
tbls <- tbls %>% lmap( ~ set_names(.x, nm = pluck(.x, 1, 1, 1))) %>% map(~ set_names(.x, nm = .x[2, ]))
awaybas <- tbls %>% .[1]
awayadv <- tbls %>% .[2] 
homebas <- tbls %>% .[3] 
homeadv <- tbls %>% .[4] 
ab1 <- as.data.frame(awaybas)
aa1 <- as.data.frame(awayadv)
hb1 <- as.data.frame(homebas)
ha1 <- as.data.frame(homeadv)
ab <- ab1[-c(1,2,8),]
aa <- aa1[-c(1,2,8),]
hb <- hb1[-c(1,2,8),]
ha <- ha1[-c(1,2,8),]
ab[,c(3:21)] <- sapply(ab[,c(3:21)], as.numeric)
aa[,c(3:16)] <- sapply(aa[,c(3:16)], as.numeric)
hb[,c(3:21)] <- sapply(hb[,c(3:21)], as.numeric)
ha[,c(3:16)] <- sapply(ha[,c(3:16)], as.numeric)

此代码运行正常,但我想提取团队名称缩写并将其添加到各自的数据框中(对于本游戏而言,它将是HOU和LAL),但不确定如何从HTML的其他部分提取该信息网页

1 个答案:

答案 0 :(得分:0)

快速浏览网站并假设您感兴趣的所有html页面具有相同的结构,我认为这可以解决您的问题:

abbr <- webpage %>% 
  html_nodes('strong') %>% 
  html_text() %>% 
  .[5:6]