使用rvest返回表格的后代

时间:2015-06-25 03:23:54

标签: html r xpath rvest

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

我正在尝试选择核心问题'中的计数数据。页面的一部分。我想让它适用于第一个问题的表格,然后打算扩展它以对页面上的每个问题/表格执行相同的操作。不幸的是,我可以得到它来拉下我感兴趣的表的部分。我想答案涉及指定<的子项。 tr>我感兴趣的节点,即多个< td>标签,但我尝试这样做仍然失败。有人能帮我指出我感兴趣的表格的一部分吗? (如果可以对页面上的所有十个表格进行加分,则可获得奖励!)

 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[1]的后代没有被提取出来吗?以下是下拉table[1]的代码:

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

1 个答案:

答案 0 :(得分:2)

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

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