javascript - 查询选择器全部在 rvest 包中

标签 javascript r rvest

我尝试执行这个 javascript 命令:

document.querySelectorAll('div.Dashboard-section div.pure-u-1-1 span.ng-scope')[0].innerText

在 r 中使用以下代码使用 rvest 包:

library(rvest)

url <- read_html("")

url %>%
  html_nodes("div.Dashboard-section div.pure-u-1-1 span.ng-scope") %>%
  html_text()

但我认为这是结果:

character(0)

我期待的是:

"Displaying results 1-25 of 10,897"

我能做什么?

最佳答案

简而言之,rvest 包可以获取 HTML,但不能执行 Javascript。您尝试获取的页面通过 AJAX、javascript 加载数据。

作为解决方法,您可以使用 RSelenium 包,正如用户 neoFox 所建议的那样。 Selenium Webdriver 会为您启动 Firefox 或 Chrome,导航到页面,等待它加载。并从 HTML DOM 中获取数据片段。

或者使用更小的 phantomjs headless 浏览器,它将 HTML 页面下载到 html 文件,而不弹出浏览器 GUI。 Read in and parse下载的带有 R 的 HTML 文件。

两者都需要一些严格的配置。 Selenium 是基于 Java 的。 Phantomjs 需要至少阅读它的文档。

您还可以检查页面,找出站点发出的 POST 请求,然后自己发送此 POST。然后获取它返回的 JSON 并自己计算结果项。

关于javascript - 查询选择器全部在 rvest 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250571/

相关文章:

javascript - JQuery 数据表日期顺序

javascript - Cheerio 将标签值 <h1> 替换为 <h2> 并保留 insideText

sql-server - R:最佳实践 - dplyr 和 odbc 多表操作(从 SQL 检索)

javascript - 如何根据时间更改边框颜色

javascript - 单击表格行以选择复选框并禁用/启用按钮 jquery

r - 双重求和以找到R中的方差

r - 像 R/SAS 这样的统计编程语言被认为是功能性的还是程序性的

r - R 中的抓取列表

r - 无法使用 rvest 抓取带有表单的网站

r - 使用 rvest 抓取 wiki 可折叠 table