我正在尝试从此页面获取所有信息:http : //ws.parlament.ch/affairs/19110758/?format=xml
首先,我将文件下载到file
并解析xmlParse(file)
。
download.file(url = paste0(http://ws.parlament.ch/affairs/19110758/?format=xml), destfile = destfile)
file <- xmlParse(destfile[])
我现在想提取我需要的所有信息。例如标题和ID号。我尝试过这样的事情:
title <- xpathSApply(file, "//h2", xmlValue)
但这仅给我一个错误: unable to find an inherited method for function ‘saveXML’ for signature ‘"XMLDocument"
我尝试的下一件事是这样的:
library(plyr)
test <-ldply(xmlToList(file), function(x) { data.frame(x[!names(x)=="id"]) } )
这给了我data.frame
一些信息。但是我丢失了诸如id
(最重要)之类的信息。
我想获得一个data.frame
包含一行事务的所有信息的行(每个事务仅一行),例如id``updated
additionalIndexing``affairType
etc。
与此配合使用(例如的示例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)))
我本来只是使用GET()
from的,httr
但是似乎并没有user-agent
很好地通过(我需要在没有代理的时候进行测试,以确保特定的错误是什么)。我也做了,substr()
因为前面有很多奇怪的字符,导致xmlTreeParse()
调用出错。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句