天天看點

html nodes id,r – 如何将xpath傳遞給html_nodes()?

我想使用html_nodes從谷歌搜尋結果中搜集組織的名稱(我隻需要第一個元素,假設這将是最好的猜測).

現在,我試圖使用其xpath來定位第一個結果,并将其傳遞給函數html_nodes.

要查找xpath,我使用的是谷歌浏覽器,如下圖所示

html nodes id,r – 如何将xpath傳遞給html_nodes()?

這給了我* * [@ 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擷取該标記的内容?

最佳答案 在抓取網站時,

selectorgadget是一個很棒的工具.使用這個我可以确定使用谷歌搜尋結果,可以使用以下css-tag找到所有标題:.r.

為了刮取結果,你可以使用這樣的東西:

library(rvest)

# searching for `rstudio`

page

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 ..."