Rvest 无法识别 css 选择器

标签 r web-scraping rvest

我正在尝试抓取这个网站:

http://www.racingpost.com/greyhounds/result_home.sd#resultDay=2015-12-26&meetingId=18&isFullMeeting=true

通过 R 中的 rvest 包。

不幸的是,rvest 似乎无法通过 CSS 选择器识别节点。

例如,如果我尝试提取每个表(等级、奖品、距离)的标题中的信息,其 CSS 选择器为“.black”,并且我运行此代码:

URL <- read_html("http://www.racingpost.com/greyhounds/result_home.sd#resultDay=2015-12-26&meetingId=18&isFullMeeting=true")
nodes<-html_nodes(URL, ".black") 

nodes 结果是一个空列表,所以它没有抓取任何东西。

最佳答案

它发出 XHR 请求以生成 HTML。试试这个(这也应该更容易自动化数据捕获):

library(httr)
library(xml2)
library(rvest)

res <- GET("http://www.racingpost.com/greyhounds/result_by_meeting_full.sd",
           query=list(r_date="2015-12-26",
                      meeting_id=18))

doc <- read_html(content(res, as="text"))

html_nodes(doc, ".black")
## {xml_nodeset (56)}
##  [1] <span class="black">A9</span>
##  [2] <span class="black">£61</span>
##  [3] <span class="black">470m</span>
##  [4] <span class="black">-30</span>
##  [5] <span class="black">H2</span>
##  [6] <span class="black">£105</span>
##  [7] <span class="black">470m</span>
##  [8] <span class="black">-30</span>
##  [9] <span class="black">A7</span>
## [10] <span class="black">£61</span>
## [11] <span class="black">470m</span>
## [12] <span class="black">-30</span>
## [13] <span class="black">A5</span>
## [14] <span class="black">£66</span>
## [15] <span class="black">470m</span>
## [16] <span class="black">-30</span>
## [17] <span class="black">A8</span>
## [18] <span class="black">£61</span>
## [19] <span class="black">470m</span>
## [20] <span class="black">-20</span>
## ...

关于Rvest 无法识别 css 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473847/

相关文章:

html - 使用 R 查找给定相对 href 的绝对 html 路径

r - 如何在 R 中获取 Google Trends 前 10 个搜索词?

r - 匹配两个数据框并替换其中一个中的相应条目

在循环中跨列替换多个值

r - 过滤后使用左连接更新数据

python - 在 python 中使用 mechanize 去除 html 标签并仅返回文本

r - apply() 和 forceAndCall() 忽略 parent.frame() 中的 get()

python - 使用 python 抓取时获取 javascript 变量值

ruby - 使用 ruby​​ mechanize 遍历 html 元素

r - 使用“rvest”提取链接