【问题标题】:Web scraping with rvest. Returning as NA用 rvest 抓取网页。以 NA 身份返回
【发布时间】:2018-04-26 01:24:23
【问题描述】:

我对网络抓取很陌生,我正在尝试从此处链接的一个 538 网站 (https://projects.fivethirtyeight.com/carmelo/kyrie-irving/) 抓取 5 年的市场价值。这是我从 rvest 包运行的代码。

kyrie_irving <- 
read_html("https://projects.fivethirtyeight.com/carmelo/kyrie-irving/")

kyrie_irving %>% 
html_node(".market-value") %>% 
html_text() %>% 
as.numeric()

但是输出看起来像这样:

> kyrie_irving <- 
  read_html("https://projects.fivethirtyeight.com/carmelo/kyrie-irving/")
> kyrie_irving %>% 
+   html_node(".market-value") %>% 
+   html_text() %>% 
+   as.numeric()
[1] NA

我只是想知道我哪里出了问题?

编辑:我尝试使用 RSelenium 来执行此操作,但仍然没有返回任何值。我真的不知道问题出在哪里。代码如下:

library(RSelenium)

rD <- rsDriver(port = 4444L,  browser = "chrome")

remDr <- rD[["client"]]
remDr$navigate("https://projects.fivethirtyeight.com/carmelo/kyrie-irving/")

elem <- remDr$findElement(using="css selector", value=".market-value")
elemtxt <- elem$getElementAttribute("div")

【问题讨论】:

    标签: web-scraping rvest rselenium


    【解决方案1】:

    Rselenium 有效,你只需要更改最后一行代码就可以得到结果。

    elem$getElementText()
    [[1]]
    [1] "$136.5m"
    

    顺便说一下,结果是一个字符串,所以需要去掉$m,然后才能解析成数字。

    【讨论】:

    • 太好了,非常感谢!我对网络抓取有点陌生,所以我仍在学习细节。
    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 2020-07-18
    • 2019-02-17
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    相关资源
    最近更新 更多