0

嗨,我无法使此功能正常工作....

在网页上:

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 中,我输入以下命令:

>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中的帮助还不清楚。

如果我没有在 htmlTreeParse(web) 中输入参数,为什么 xpathSApply 会返回错误?xpathSApply 中的参数 xmlValue 是什么,甚至没有提到它的帮助页面!

4

1 回答 1

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"                                              
于 2013-05-28T01:20:21.240 回答