我正在构建此抓取工具,以从以下网页提取游戏数据: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的其他部分提取该信息网页
答案 0 :(得分:0)
快速浏览网站并假设您感兴趣的所有html页面具有相同的结构,我认为这可以解决您的问题:
abbr <- webpage %>%
html_nodes('strong') %>%
html_text() %>%
.[5:6]