使用 rvest 给 table 的 return 个后代

Using rvest to return descendants of a table

我无法弄清楚为什么以下代码没有返回 xpath 指定的信息。

我正在尝试 select 在页面的 'Core Questions' 部分找到的计数数据。我想让它为第一个问题的 table 工作,然后打算扩展它以对页面上的每个 question/table 做同样的事情。不幸的是,我可以让它下拉我感兴趣的 table 部分。我想答案涉及指定我感兴趣的 < tr > 节点的子节点,即多个 < td > 标签,但我的这样做的尝试继续失败。谁能帮我指定我感兴趣的 table 部分? (如果页面上的所有 10 个 table 都能完成,可加分!)

 library(rvest)

 detailed <- html("https://www.deakin.edu.au/evaluate/results/old/detail-rep.php?schedule_select=1301&faculty_select=01&school_select=0104&unit_select=MIS202&location_select=B")

 q1 <- detailed %>%
 html_nodes(xpath='//*[@id="main"]/div/div/form/fieldset[2]/table[1]/tbody/tr/td[2]/div/table/tbody/tr[5]') %>%
 html_table(header = TRUE, fill=TRUE)

当我去祖先table时,它拉下了信息,但它非常混乱且难以解释。当我尝试在此 table 中指定元素时,我无法提取信息。谁能向我解释为什么 table[1] 的后代没有被提取?这是下拉代码 table[1]:

 q1 <- detailed %>%
 html_nodes(xpath='//*[@id="main"]/div/div/form/fieldset[2]/table[1]') %>%
 html_table(header = TRUE, fill = TRUE)

这会让你到达你需要去的地方吗?

allqs <- detailed %>%
  html_nodes(css = ".result center") %>%
  html_text()


t(matrix(as.numeric(allqs), 5, 10, dimnames = list(c("Strongly Disagree", "Disagree", "Neutral", "Agree", "Strongly Agree"), 
                                    paste0("Q", 1:10))))

给出:

    Strongly Disagree Disagree Neutral Agree Strongly Agree
Q1                  0        4       4     9              1
Q2                  1        2       2    11              2
Q3                  0        0       2    11              5
Q4                  1        3       2     9              3
Q5                  0        3       4    10              1
Q6                  0        1       5     7              2
Q7                  0        3       6     6              3
Q8                  1        0       2     7              8
Q9                  0        0       5     7              5
Q10                 0        1       4     7              5