我正在尝试从此页面获取所有信息:
http://ws.parlament.ch/affairs/19110758/?format=xml
首先,我将文件下载到文件中,然后用xmlParse(文件)解析它.
download.file(url = paste0(http://ws.parlament.ch/affairs/19110758/?format=xml),destfile = destfile) file <- xmlParse(destfile[])
我现在想要提取我需要的所有信息.例如标题和ID号.我试过这样的事情:
title <- xpathSApply(file,"//h2",xmlValue)
但这只给我一个错误:无法为签名’“XMLDocument”找到函数’saveXML’的继承方法
接下来我尝试的是这个:
library(plyr) test <-ldply(xmlToList(file),function(x) { data.frame(x[!names(x)=="id"]) } )
这给了我一个data.framewith一些Info.但我失去了诸如id之类的信息(这是最重要的).
我想得到一个带有一行(每个事件只有一行)的data.frame,其中包含一个事件的所有信息,例如id“updated additionalIndexing“affairTypeetc.
有了它,它的工作原理(例如id):
infofile <- xmlRoot(file) nodes <- getNodeSet(file,"//affair/id") id <-as.numeric(lapply(nodes,function(x) xmlSApply(x,xmlValue)))
解决方法
这将使您获得XML:
library(XML) library(RCurl) library(httr) srcXML <- getURL("http://ws.parlament.ch/affairs/19110758/?format=xml",.opts=c(user_agent("Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"),verbose())) myXMLFile <- xmlTreeParse(substr(srcXML,4,nchar(srcXML)))
我本来只使用了来自httr的GET()但它似乎并没有很好地传递用户代理(当我不在代理后面时我需要测试它以确定具体的错误是什么).我也做了substr(),因为前面有一堆奇怪的字符导致xmlTreeParse()调用错误输出.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。