【问题标题】:How to pass an xpath to html_nodes()?如何将 xpath 传递给 html_nodes()?
【发布时间】:2017-07-17 08:28:03
【问题描述】:

我想使用html_nodes 从谷歌搜索结果中抓取组织的名称(我只需要第一个元素,假设这是最好的猜测)。 现在,我正在尝试使用它的 xpath 来定位第一个结果,并将其传递给函数 html_nodes。 要找到 xpath,我使用的是 google chrome,如下图所示

这给了我//*[@id="rso"]/div[1]/div/div[1]/div/div/h3/a 作为第一个结果标题的 xpath。但是,当我尝试将其传递给 html_nodes() 时,我得到一个空字符串:

page %>% html_nodes(xpath='//*[@id="rso"]/div[1]/div/div[1]/div/div/h3/a')
{xml_nodeset (0)}

虽然我希望字符串 The A-Test 2017 Workshop.

如何使用 xpath 或 css 获取 a 标签的内容?

【问题讨论】:

    标签: r xpath rvest


    【解决方案1】:

    在抓取网站时,selectorgadget 是一个很棒的工具。使用它,我可以确定使用 google 搜索结果,可以使用以下 css-tag 找到所有标题:.r

    要抓取结果,您可以使用以下内容:

    library(rvest)
    
    # searching for `rstudio`
    page <- read_html("https://www.google.at/search?client=safari&rls=en&q=rstudio&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=VpJsWe2oOqqk8wfT5KaQDQ")
    
    page %>% 
      html_nodes(".r") %>%
      html_text()
    #>  [1] "RStudio – Open source and enterprise-ready professional software ..."
    #>  [2] "Download"                                                            
    #>  [3] "Download RStudio Server"                                             
    #>  [4] "RStudio Server"                                                      
    #>  [5] "Shiny"                                                               
    #>  [6] "RStudio – Wikipedia"                                                 
    #>  [7] "RStudio - Wikipedia"                                                 
    #>  [8] "Datenrettung | R-Studio 8.3 Deutsch | Software zur Datenrettung ..." 
    #>  [9] "GitHub - rstudio/rstudio: RStudio is an integrated development ..."  
    #> [10] "RStudio · GitHub"                                                    
    #> [11] "R-Studio"                                                            
    #> [12] "Install RStudio with R Server on HDInsight - Azure | Microsoft Docs"
    

    您可以通过子集轻松找到第一个:

    page %>% 
      html_nodes(".r") %>%
      html_text() %>% 
      .[1]
    #> [1] "RStudio – Open source and enterprise-ready professional software ..."
    

    此博客更彻底地演示了该方法:https://blog.rstudio.com/2014/11/24/rvest-easy-web-scraping-with-r/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多