2013-10-19 72 views
0

webscrapping的時候,我的工作對Web廢料以下網站:如果你看看這個網站R:有故障產生的XPath R上

http://www.crowdrise.com/waterforpeople-SE 

,在右邊,正上方的黑色按鈕上面寫着Fundraise for this campaign,有一個聲明說:52% Raised of $20,000 Goal。 我試圖提取這一點,我剛纔提到的非常說法。

的XPath表達式我想:

.//*[@id="thebody"]/div[6]/div/div/div[2]/div[2]/div[2]/div/p/span 

,但它沒有工作...

什麼是正確的XPath表達式?

謝謝你,

回答

1

試試這個:

> library(XML) 
> doc <- htmlTreeParse('http://www.crowdrise.com/waterforpeople-SE', useInternalNodes = TRUE) 
> xpathApply(doc, '//div[@class="grid1-4"]//p[@class="progressText"]') 
[[1]] 
<p class="progressText"> 
    <span>52% Raised of $20,000 Goal</span> 
</p> 

attr(,"class") 
[1] "XMLNodeSet" 

或者直接去文本值:

> xpathApply(doc, '//div[@class="grid1-4"]//p[@class="progressText"]', xmlValue) 
[[1]] 
[1] "52% Raised of $20,000 Goal" 
+0

謝謝!你怎麼解決這個問題?真的,我不擅長的XPath開始,但我嘗試了幾個小時,只是無法弄清楚:) –

+0

好,只是看文檔中唯一的HTML元素:)如果你有困難的定義與'xpath',你也可以使用[R中的CSS選擇器(http://cran.r-project.org/web/packages/selectr/index.html)或安裝在瀏覽器的擴展,它可以識別'的XPath '爲你表達。例如。有一堆類似的應用程序的Chrome,但我很確定也有FF。 – daroczig