【问题标题】:How to scrape text using RSelenium in R?如何在 R 中使用 RSelenium 抓取文本?
【发布时间】:2016-06-06 19:20:25
【问题描述】:

我想使用 RSelenium 包从站点 http://stats.statbroadcast.com/statmonitr/?id=102197 中抓取文本“VIRGINIA TECH”。

我想抓取的特定文本的 css 选择器是:

.valigntop:nth-child(1) .width6-3-4.marginr

打开远程驱动程序并导航到我尝试的站点后:

webElem <- remDr$findElement(using = "css selector", '.valigntop:nth-child(1) .width6-3-4.marginr')
doc <- remDr$getPageSource()[[1]]
current_doc <- read_html(doc)
current_doc <- html_text(current_doc)

这会返回一大块文本,而不是我想要的文本“VIRGINIA TECH”。

刮完我想要的:

current_doc
[1] "VIRGINIA TECH"

任何帮助将不胜感激。如果需要任何进一步的信息,请告诉我。

【问题讨论】:

  • 以下 XPath 似乎运行良好 (//div[contains(@class, "teamname")])[1]
  • 感谢您的评论。当我尝试remDr$findElement(using = "xpath", "(//div[contains(@class, "teamname")])[1]") 时,它返回unexpected symbol 错误。

标签: r web-scraping css-selectors rselenium


【解决方案1】:

简单的一个。

`webElems <- unlist(remDr$findElements(using = 'css selector', ".valigntop:nth-child(1) .width6-3-4.marginr")$getElementText())`

这也有效!!

【讨论】:

    【解决方案2】:

    通过link阅读后 我发现这非常适合抓取我想要的文本。

    webElems <- remDr$findElements(using = 'css selector', ".valigntop:nth-child(1) .width6-3-4.marginr")
    current_doc <- unlist(lapply(webElems, function(x){x$getElementText()}))
    

    结果:

    current_doc
    [1] "VIRGINIA TECH"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      相关资源
      最近更新 更多