html - 如何从 HTML 网页中选择特定单词以附加到 R 中的数据框?
问题描述
我正在构建这个刮板来从这个网页中提取比赛数据: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 网页的其他部分提取这些信息
解决方案
快速浏览网站并假设您感兴趣的所有 html 页面具有相同的结构后,我认为这可能会解决您的问题:
abbr <- webpage %>%
html_nodes('strong') %>%
html_text() %>%
.[5:6]
推荐阅读
- java - 在 Catalina 上全新安装后尝试使用 sbt 运行 Play Scala 应用程序时出错:“加载 JNotify 监视服务时出错:null”
- android - 我的证书更新后我的应用程序停止工作
- python - 无法使用 ChemDataExtractor 在 Windows 10 中执行“cde 数据下载”
- apache-spark - 如何在 PySpark 中读取由多个字符分隔的文本文件?
- wordpress - Wordpress Json 解码
- python - 如何在不让其他值乱序的情况下对堆叠的 numpy 数组进行排序
- javascript - Vue.js this.$nextTick() 似乎没有等待 dom 渲染
- python - 如何在python中创建一个zip文件
- docusignapi - 发送信封时认证失败
- html - 使网格列适应其内容