首页 > 解决方案 > R: rvest - 共享计数器,xpath

问题描述

我正在尝试使用 Rvest 废弃数据。我无法通过此链接从共享计数器中刮取数字/文本:“753 udostępnienia”。

我使用 Google Chrome 插件XPath helper来查找 Xpath。我准备了一个简单的 R 代码:

library(rvest)
url2<- "https://www.siepomaga.pl/kacper-szlyk"
share_url<-html(url2)
share_url
share <- share_url %>%
 html_node(xpath ="/html[@class='turbolinks-progress-bar']/body/div[@id='page']/div[@class='causes-show']/div[@class='ui container']/div[@id='column-container']/div[@id='right-column']/div[@class='ui sticky']/div[@class='box with-padding']/div[@class='bordered-box share-box']/div[@class='content']/div[@class='ui grid two columns']/div[@class='share-counter']") %>% 
  html_text()
share

但是结果等于 NA。我哪里做错了?

标签: rxpathweb-scrapingrvest

解决方案


我想出了一个使用rvest,而不使用该xpath =方法的解决方案。这也使用dplyr包中的管道运算符来简化事情:

library(tidyverse) # Contains the dplyr package
library(rvest)

siep_url <- "https://www.siepomaga.pl/kacper-szlyk"

counter <- siep_url %>%
  read_html() %>%
  html_node(".share-counter") %>%  # The node comes from https://selectorgadget.com/, a useful selector tool
  html_text()

输出如下:

[1] "\n\n755\nudostępnień\n"

您可以使用以下方法进行清理gsub()

counter <- gsub("\n\n755\nudostępnień\n", "755 udostępnień", counter)

这将返回755 udostępnień, 作为一个字符。希望这可以帮助。


免责声明:相当大的语言障碍,但 translate.google.com 创造了奇迹。


推荐阅读