我有一个 URL 列表(足够大),我想检查它们的 HTML 代码是否有效。如果不是,我想知道错误和警告的数量,比如这个页面的结果:http: //validator.w3.org/
因此,希望通过 RI 将我的 URL 提交到该网页,然后解析结果以获取我需要的信息。还有另一种方法吗?
我找到了 RCurl 包,但我不确定如何去做。我会很感激任何帮助。
提前致谢。
编辑:
我尝试了下面的代码,这似乎可以完成这项工作,尽管由于某些未知原因我仍然无法处理一些 URL,我收到错误并且代码停止(因此我失去了一切)。
HTMLValid=foreach(i=1:nrow(allData), .combine='rbind') %dopar% {
library(RCurl)
library(XML)
url=paste("http://validator.w3.org/check?uri=",
as.character(allData$url[i]),
"&charset=%28detect+automatically%29&doctype=Inline&group=0#preparse_warnings",
sep="")
w = getURL(url,httpheader = c('User-Agent' = "Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20100101 Firefox/23.0"))
doc <- htmlTreeParse(w, getDTD = F)
r=xmlRoot(doc)
text=r[["body"]][[2]][[4]][[1]][[1]][[2]][[1]]
errors=strsplit(toString.XMLNode(text),' ')[[1]][1]
warnings=strsplit(toString.XMLNode(text),' ')[[1]][3]
c(as.numeric(errors),as.numeric(warnings))
}
当页面在特定时间范围内没有响应时,我可能会收到错误消息。我该如何克服呢?有没有办法更快地完成程序?