【发布时间】:2011-07-04 22:11:39
【问题描述】:
我对抓取完全不熟悉,我正在尝试使用 R 来理解 xpath。我的目标是从这个网站创建一个人的向量。我可以使用:
r<-htmlTreeParse(e) ## e is after getURL
g.k<-(r[[3]][[1]][[2]][[3]][[2]][[2]][[2]][[1]][[4]])
l<-g.k[names(g.k)=="text"]
u<-ldply(l,function(x) {
w<-xmlValue(x)
return(w)
})
但是这很麻烦,我更喜欢使用 xpath。我该如何去参考上面详述的路径?是否有此功能,或者我可以提交我上面引用的路径吗?
我来了
xpathApply( htmlTreeParse(e, useInt=T), "//body//text//div//div//p//text()", function(k) xmlValue(k))->kk
但这让我有很多清理工作要做,我认为可以做得更好。
问候, //M
编辑:对不起,不清楚,但我对此很陌生,而且很困惑。不幸的是,XML 文档太大而无法粘贴。我想我的问题是除了使用视图源之外,是否有一些简单的方法可以找到这些节点/文档结构的名称?我离我想要的更近了一点:
getNodeSet(htmlTreeParse(e, useInt=T), "//p")[[5]]->e2
给了我想要的清单。但是仍然在带有 br 标签的 xml 中。我以为跑步
xpathApply(e2, "//text()", function(k) xmlValue(k))->kk
将提供一个稍后可能不列出的列表。但是它提供的列表比 e2 显示的垃圾更多。
有没有办法直接做到这一点:
xpathApply(htmlTreeParse(e, useInt=T), "//p[5]//text()", function(k) xmlValue(k))->kk
到网页的链接:我正在尝试从页面中获取名称,并且仅获取名称。
getURL("http://legeforeningen.no/id/1712")
【问题讨论】:
-
非常不清楚的问题。 1) 提供要从中选择节点的 XML 文档。 2) 说明您希望从提供的 XML 文档中选择哪些节点。
-
即使在您编辑之后,这个问题也无法回答。我们不知道您的 XML 是什么样的,您也没有提供任何关于
e2、kk内容的示例或任何其他示例数据。 -
@Misha,做一个可重复的小例子。 XML 文件的淡化版本。