Xml R中的网页抓取问题

Xml R中的网页抓取问题,xml,r,scraper,httr,Xml,R,Scraper,Httr,我正在尝试使用XPath搜索网页的特定位置。 该路径似乎是“隐藏”的,因为网页的其他部分很容易访问,但本节返回一个NULL值 我试过使用几个软件包,但我不是这方面的专家,所以我无法真正评估到底发生了什么,以及这是否是解决问题的方法 这就是我尝试过的 require("XML") require("scrapeR") require("httr") url <- "http://www.claro.com.ar/portal/ar/pc/personas/movil/eq-new/?eq=

我正在尝试使用XPath搜索网页的特定位置。 该路径似乎是“隐藏”的,因为网页的其他部分很容易访问,但本节返回一个
NULL

我试过使用几个软件包,但我不是这方面的专家,所以我无法真正评估到底发生了什么,以及这是否是解决问题的方法

这就是我尝试过的

require("XML")
require("scrapeR")
require("httr")

url <- "http://www.claro.com.ar/portal/ar/pc/personas/movil/eq-new/?eq=537"
xp <- '//*[@id="dv_MainContainerEquiposResumen"]/div[1]/h1'

page <- scrape(url)
xpathApply(page[[1]], xp, xmlValue)
# NULL

url.get = GET(url)
xpathSApply(content(url.get), xp)
# NULL

webpage = getURL(url)
doc = htmlTreeParse(webpage, error=function(...){}, useInternalNodes = TRUE)
xpathSApply(doc, xp)
# NULL
require(“XML”)
要求(“刮刀”)
要求(“httr”)

url页面的这一部分似乎是稍后通过javascript添加的。它不存在于页面的源中。我认为
scrapeR
不会评估javascript

数据似乎来自对的AJAX调用。它可能正在查看引用程序以了解要发送的数据

看来这将有助于获取该数据

library(RCurl)
getURL("http://www.claro.com.ar/portal/ar/ceq/js/ceq.js?ver=1.0.0",
    .opts=curlOptions(referer="http://www.claro.com.ar/portal/ar/pc/personas/movil/eq-new/?eq=537"))

您可以使用Selenium和RSelenium软件包刮取页面:

url <- "http://www.claro.com.ar/portal/ar/pc/personas/movil/eq-new/?eq=537"
xp <- '//*[@id="dv_MainContainerEquiposResumen"]/div[1]/h1'
require(RSelenium)
RSelenium::startServer()
remDr <- remoteDriver()
remDr$open()
remDr$navigate(url)
webElem <- remDr$findElement(value = xp)
> webElem$getElementAttribute("outerHTML")[[1]]
[1] "<h1>Samsung Galaxy Core</h1>"
> webElem$getElementAttribute("innerHTML")[[1]]
[1] "Samsung Galaxy Core"
remDr$close()
remDr$closeServer()
url webElem$getElementAttribute(“innerHTML”)[[1]]
[1] “三星Galaxy Core”
remDr$close()
remDr$closeServer()

我想我可以从脚本中检索相关信息。谢谢@MartínBel我添加了一些代码,我认为这些代码可以与RCurl一起从该服务中获取数据。