2016-08-05 10 views
0

私はWebスクレイピングにRSeleniumを使用しています。今私は動的に生成されたWebページから特定のXMLノードのxpathを持っています。子ノードは同じ種類です。しかし、私は子ノードの数について先験的な知識は持っていません。たとえば、ショッピングサイトで希少なアイテムを検索すると、このような状況に陥ることがあります。RSelenium - ノードの子ノード番号とそのxpathを取得する方法

一般に、次の情報はどのように入手できますか?

1)ノードの子ノードの番号。 2)上記のxpath(s)。私の目標は、各子ノード全体にアクションを適用することです(例えば、ノードの種類に応じて、塗りつぶし、チェック、またはクリックするなど)。

クロムにxpathヘルパーを使用したいくつかのxpathがあります。それから私は完全に立ち往生しています。

好ましくは、RSeleniumを用いて例示される。 httr + rvestでもかまいません。

答えて

1

rvestソリューションは、次のようになります。そして、

require(rvest) 
your_xpath = "YOUR XPATH" 
doc <- read_html(remDr$getPageSource()[[1]]) 
children <- doc %>% html_node(xpath=your_xpath) %>% html_children() 

あなたが好きな彼らに子供を越えてまで繰り返すことができますが

for (i in 1:length(children)){ 
    webElem <- remDr$findElement(using = 'xpath', sprintf("%s/*[%d]", your_xpath, i)) 
    if(classify_node(children[i]) == "click"){ 
    webElem$$clickElement() 
    } else {...} 
} 
関連する問題