Wal*_*son 1 html r href web-scraping rvest
我在这里看到了类似的问题并实施了解决方案,但似乎仍然无法解决这个问题。还是一个 R 新手,所以请耐心等待:我已经设法使用 rvest从该网站获取了巴拉克·奥巴马 (Barack Obama) 的演讲表:
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)
Run Code Online (Sandbox Code Playgroud)
产生:
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
Run Code Online (Sandbox Code Playgroud)
但是,我还想提取“语音”列中每个条目的超链接,该链接自然位于属性中href。我在网上对此进行了相当彻底的研究,有些人说还要用 指定 html 属性html_attr('href'),但如果我将其包含在上面的代码中,我会收到此错误:
Error in UseMethod("xml_attr") : no applicable method for 'xml_attr' applied to an object of class "list"
另一个人建议修改实际功能,trace但这似乎过于复杂,看起来有点简单。知道我在哪里绊倒吗?
我使用Selector Gadget来确定节点,并使用以下命令提取 URL:
page %>% html_nodes("td:nth-child(2) a") %>% html_attr("href")
Run Code Online (Sandbox Code Playgroud)