xml – 如何从R中的一个已刮取的网页中隔离单个元素
发布时间:2020-12-16 07:50:52 所属栏目:百科 来源:网络整理
导读:我想用R来刮擦这个页面:( http://www.fifa.com/worldcup/archive/germany2006/results/matches/match=97410001/report.html)等人来得到目标得分手和时间. 到目前为止,这是我所得到的: require(RCurl)require(XML)theURL -"http://www.fifa.com/worldcup/ar
我想用R来刮擦这个页面:(
http://www.fifa.com/worldcup/archive/germany2006/results/matches/match=97410001/report.html)等人来得到目标得分手和时间.
到目前为止,这是我所得到的: require(RCurl) require(XML) theURL <-"http://www.fifa.com/worldcup/archive/germany2006/results/matches/match=97410001/report.html" webpage <- getURL(theURL,header=FALSE,verbose=TRUE) webpagecont <- readLines(tc <- textConnection(webpage)); close(tc) pagetree <- htmlTreeParse(webpagecont,error=function(...){},useInternalNodes = TRUE) 而pagetree对象现在包含一个指向我解析的html的指针(我认为).我想要的是: <div class="cont")<ul> <div class="bold medium">Goals scored</div> <li>Philipp LAHM (GER) 6',</li> <li>Paulo WANCHOPE (CRC) 12',</li> <li>Miroslav KLOSE (GER) 17',</li> <li>Miroslav KLOSE (GER) 61',</li> <li>Paulo WANCHOPE (CRC) 73',</li> <li>Torsten FRINGS (GER) 87'</li> </ul></div> 但是我现在失去了如何隔离他们,坦率地说,xpathSApply和xpathApply将beejeebies混淆了我! 所以,有没有人知道如何制定一个命令来吸取包含在< div class =“cont”>中的元素.标签?
这些问题在处理R中的Web抓取和XML时非常有用:
> Scraping html tables into R data frames using the XML package 关于你的具体例子,虽然我不知道你想要的输出是什么样的,但是这样就得到了一个字符向量的“进球得分”: theURL <-"http://www.fifa.com/worldcup/archive/germany2006/results/matches/match=97410001/report.html" fifa.doc <- htmlParse(theURL) fifa <- xpathSApply(fifa.doc,"//*/div[@class='cont']",xmlValue) goals.scored <- grep("Goals scored",fifa,value=TRUE) xpathSApply函数获取与给定条件匹配的所有值,并将其作为向量返回.注意我正在寻找一个div与class =’cont’.使用类值通常是解析HTML文档的好方法,因为它们是很好的标记. 你可以清理它,但是你想要的: > gsub("Goals scored","",strsplit(goals.scored,",")[[1]]) [1] "Philipp LAHM (GER) 6'" "Paulo WANCHOPE (CRC) 12'" "Miroslav KLOSE (GER) 17'" "Miroslav KLOSE (GER) 61'" "Paulo WANCHOPE (CRC) 73'" [6] "Torsten FRINGS (GER) 87'" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |