R中的报废链接

时间:2020-06-03 21:38:38

标签: r web-scraping

我正在R上开发一个项目。我想找到链接aosmith.com,因为它已在Wikipedia页面https://en.wikipedia.org/wiki/A._O._Smith上公开。可能我的问题再次被问到,但我还没有找到解决的办法。到目前为止,我做了以下工作,但没有成功:

library(rvest)
library(magrittr)

url <- "https://en.wikipedia.org/wiki/A._O._Smith"
links <- read_html(url) %>% html_nodes(., ".lister-item-header a") %>% html_attr(., "href")

3 个答案:

答案 0 :(得分:2)

这应该适用于任何设置为url的Wikipedia链接,并且只会返回所需的URL:

library(rvest)
library(magrittr)

url <- "https://en.wikipedia.org/wiki/A._O._Smith"
link<-read_html(url) %>% html_nodes(".infobox") %>% html_nodes(".url>a")%>% html_attr(name='href')

答案 1 :(得分:2)

通过使用特定的xpath表达式,您可以获得更多的控制权和通用性。该xpath表达式仅搜索带有文本“ A.O. Smith”的链接。与使用浏览器生成的编号xpath相比,如果/在更新页面时,这种可能性较小。

 library(rvest)
 library(magrittr)

 url  <- "https://en.wikipedia.org/wiki/A._O._Smith"
 link <- read_html(url) %>% 
         html_nodes(xpath = "//a[text() = 'A.O. Smith']") %>%
         html_attr("href")
 link
 #> [1] "http://www.aosmith.com"

答案 2 :(得分:1)

使用浏览器的检查器工具(F12和Ctrl + Shift + C),您可以复制链接的xpath(单击aosmith.com,然后在面板中右键单击蓝色框)。在R中,使用复制的xpath访问所需的元素。

link <- read_html(url) %>%
         html_nodes(xpath='//*[@id="mw-content-text"]/div/table/tbody/tr[19]/td/span/a') %>%
         html_attr(., "href")

enter image description here