【问题标题】:Scrape link in RR中的抓取链接
【发布时间】:2020-06-03 21:38:38
【问题描述】:

我正在 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")

【问题讨论】:

    标签: r web-scraping


    【解决方案1】:

    通过使用特定的 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】:

      这应该适用于任何设置为 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')
      

      【讨论】:

      • 你能帮助 OP 解析返回的 200 多个 url 吗?
      • 更新后适用于任何设置为 url 的维基百科链接,并且只返回所需的 URL。
      【解决方案3】:

      使用浏览器的检查器工具(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")
      

      【讨论】:

        猜你喜欢
        • 2018-05-09
        • 1970-01-01
        • 2018-09-13
        • 1970-01-01
        • 2017-12-24
        • 2018-08-01
        • 1970-01-01
        • 2018-03-29
        • 1970-01-01
        相关资源
        最近更新 更多