将 Google Chrome 的 Inspect 元素导入 R

Tyl*_*ker 6 r

这个问题基于我看到的另一个关闭的问题,当我了解了有关 Google Chrome 的 Inspect Element 的新知识以创建 .html 解析路径时,这引起了好奇心XML::getNodeSet。虽然这个问题已经结束,因为我认为它可能太宽泛了,但我会问一个更小的、更集中的问题,这可能是问题的根源。

我试图通过编写我通常用于抓取的代码来帮助海报,但由于海报想要来自 Google Chrome 的 Inspect Element 的元素,我立即撞到了墙。这与htmlTreeParse此处演示的 HTML 不同:

url <- "http://collegecost.ed.gov/scorecard/UniversityProfile.aspx?org=s&id=198969"
doc <- htmlTreeParse(url, useInternalNodes = TRUE) 
m <- capture.output(doc)
any(grepl("258.12", m))
## FALSE
Run Code Online (Sandbox Code Playgroud)

但是在 Google Chrome 的 Inspect Element 中,我们可以看到提供了此信息(黄色):

在此处输入图片说明

我们如何将 Google Chrome 的 Inspect Element 中的信息获取到 R 中? 海报显然可以将代码复制并粘贴到文本编辑器中并以这种方式解析,但他们正在寻找刮擦,因此该工作流程无法扩展。一旦发布者可以将这些信息输入到 R 中,他们就可以使用典型的 HTML 解析技术(XLMRCurl-fu)。

Tho*_*mas 2

您应该能够使用类似于以下 RSelenium 代码的内容来抓取页面。您需要在您的路径上安装并可用 java 才能使startServer()线路正常工作(从而使您能够执行任何操作)。

library("RSelenium")
checkForServer()
startServer()
remDr <- remoteDriver(remoteServerAddr = "localhost", 
                      port = 4444, 
                      browserName = "firefox"
                      )
url <- "http://collegecost.ed.gov/scorecard/UniversityProfile.aspx?org=s&id=198969"
remDr$open()
remDr$navigate(url)
source <- remDr$getPageSource()[[1]]
Run Code Online (Sandbox Code Playgroud)

检查以确保它根据您的测试工作:

> grepl("258.12", source)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)