【问题标题】:R: rvest - share counter, xpathR: rvest - 共享计数器,xpath
【发布时间】:2018-07-15 16:56:38
【问题描述】:

我正在尝试使用 Rvest 报废数据。我无法从 link 的共享计数器中刮取数字/文本:“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。 我哪里做错了?

【问题讨论】:

    标签: r xpath web-scraping rvest


    【解决方案1】:

    我想出了一个使用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 创造了奇迹。

    【讨论】:

    • 谢谢,总而言之:1) 使用 SelectorGardget 获取 CSS,然后使用 gsub 操作以清理文本。
    • 基本上,是的——如果你愿意,你可以检查这个答案是否正确!
    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2010-12-27
    • 2011-01-06
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多