Это решило бы проблему для этой конкретной таблицы.
Но учтите, что это очень хрупкое решение. Предполагается, что матричная структура состоит только из 3 строк, и предполагается, что все строки имеют одинаковое количество элементов.
library(tidyverse)
library(rvest)
## Create a function to parse every row in the table.
Hockey_table <- function(htmlObject) {
titlerow <- htmlObject %>% html_nodes(xpath = '//div[@class="stats_pullout"]/div/div/h4') %>% html_text('data-tip')
firstrow <- htmlObject %>% html_nodes(xpath = '//div[@class="stats_pullout"]/div/div/p[1]') %>% html_text()
secondrow <- htmlObject %>% html_nodes(xpath = '//div[@class="stats_pullout"]/div/div/p[2]') %>% html_text()
data.frame(titlerow, firstrow, secondrow)
}
Page01 <- read_html('https://www.hockey-reference.com/players/f/forsbfi01.html')
Hockey_table(Page01)
Результаты:
titlerow firstrow secondrow
1 SUMMARY 2017-18 Career
2 GP 67 331
3 G 26 117
4 A 38 138
5 PTS 64 255
6 +/- 27 26
7 PS 8.3 32.1
8 PIM 38 145
9 SH 179 931
10 GWG 6 24
11 TOI 17:28 17:49
12 CF% 53.0 54.9
13 oZS% 54.1 63.4