2

XPathを使用してWebページの特定の場所をスクレイピングして見つけようとしています。Web ページの他の部分に簡単にアクセスできるため、パスは「隠されている」ように見えますが、このセクションは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
4

2 に答える 2

1

ページのその部分は、後で JavaScript を介して追加されたようです。ページのソースには存在しません。scrapeRJavaScriptを評価するとは思わない。

データは、 http://www.claro.com.ar/portal/ar/ceq/js/ceq.js?ver=1.0.0への 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"))
于 2014-05-21T19:38:14.000 に答える