2013-05-27 35 views
1

您好我不能得到這個功能的工作....xpathSApply()返回行(),h3lp請

在網頁:

http://www.meetup.com/stats-prog-dc/members/?sort=chapter_member.atime&desc=1&offset=3

有與memName類的鏈接,例如:

<a href="http://www.meetup.com/stats-prog-dc/members/94995702/" class="memName">Asuri</a> 

在R,I輸入下面的命令:

>web <- getURL("http://www.meetup.com/stats-prog-dc/members/?sort=chapter_member.atime&desc=1&offset=3", ssl.verifypeer = FALSE) 
>webhtml <- htmlTreeParse(web,error=function(...){},useInternalNodes=TRUE,encoding="UTF-8",trim=TRUE) 
>vNames <- xpathSApply(webhtml,'//*[@class="memName "]', xmlValue) 
>vNames 

問題是vNames返回「list()」而不是包含「Asuri」和所有其他名稱的列表。請爲什麼它不工作這是殺了我,在R的幫助是如此不清楚。

爲什麼xpathSApply返回一個錯誤,如果我不把參數放在htmlTreeParse(web)中? xpathSApply中的參數xmlValue是什麼,它甚至沒有提到它的幫助頁面!

回答

2

您已經爲屬性名稱添加了空格。使用

xpathSApply(webhtml,'//*[@class="memName"]', xmlValue) 

[1] "James Conkling"  "Mary Clare Peate" "Mike Hodel"   
[4] "Harlan Harris"  "kenny"    "Alex McKenzie"  
[7] "KJ"     "shaema talib"  "Brian Sacash"  
[10] "fbohorqu"   "Peter"    "Steve Swartz"  
[13] "Russell"   "J. Kader Hyer"  "T Woo"    
[16] "Rajavel Sethupathi" "Clarence Dillon" "Patrick Wheatley" 
[19] "Anna Shaver"  "anupam"  

改爲。

xmlValue爲您提供了特定節點的值。 ?xmlValue會給你幫助頁面。 xpathSApply有一個參數fun,該參數用於將函數應用於每個節點。 可以使用例如xmlAttrs如果你想要一個特定節點的屬性:

> xpathSApply(webhtml,'//*[@class="memName"]',xmlAttrs) 
     [,1]             
href "http://www.meetup.com/stats-prog-dc/members/37625662/" 
class "memName"            
     [,2]             
href "http://www.meetup.com/stats-prog-dc/members/94691152/" 
class "memName"            
     [,3]             
href "http://www.meetup.com/stats-prog-dc/members/91583452/" 
class "memName"            
+0

尼斯感謝的,現在我明白了更多,對不起,我是新R和腳本 – Wicelo