使用 rvest 从 HTML table 中提取超链接

Extracting hyperlink from HTML table with rvest

我在这里看到了类似的问题并实施了解决方案,但似乎仍然无法解决这个问题。仍然是 R 新手,所以请耐心等待:我已经设法使用 rvest 从 this website 中获得了巴拉克奥巴马的 table 演讲:

library(rvest)
page <- read_html("http://www.americanrhetoric.com/barackobamaspeeches.htm")
speeches <- page %>%
  html_nodes(xpath = '//*[@id="AutoNumber1"]') %>% 
  html_table(fill=TRUE)
speeches <- speeches[[1]][,2:4]
head(speeches)

产生:

            X2                                            X3    X4
1             <NA>                                          <NA>  <NA>
2    Delivery Date                  Speech Title/Text/MultiMedia Audio
3     27 July 2004 Democratic National Convention Keynote Speech   mp3
4  06 January 2005 Senate Speech on Ohio Electoral Vote Counting   mp3
5     04 June 2005              Knox College Commencement Speech   mp3
6 15 December 2005              Senate Speech on the PATRIOT Act   mp3

但是,我还想提取 "Speech" 列中每个条目的超链接,它自然存在于 href 属性中。我在网上对此进行了相当彻底的研究,有些人说还要用 html_attr('href') 指定 html 属性,但是如果我在上面的代码中包含它,我会收到此错误:

Error in UseMethod("xml_attr") : no applicable method for 'xml_attr' applied to an object of class "list"

另一个人建议用 trace 修改实际功能,但这似乎过于复杂,因为某些事情看起来很简单。知道我在哪里绊倒了吗?

使用 Selector Gadget 确定节点,我提取了以下网址:

page %>% html_nodes("td:nth-child(2) a") %>% html_attr("href")