我想用html_nodes
来抓住组织'来自谷歌搜索结果的名称(我只需要第一个元素,假设这将是最好的猜测)。
现在,我试图使用其xpath来定位第一个结果,并将其传递给函数html_nodes
。
要查找xpath,我使用的是谷歌浏览器,如下图所示
这给了我//*[@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
标记的内容?
答案 0 :(得分:1)
在抓取网站时,selectorgadget是一个很棒的工具。使用此我可以确定使用谷歌搜索结果,可以使用以下css标记找到所有标题:.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/