簡體   English   中英

使用XML包中的readHTMLtable來搜索站點,不確定的錯誤消息

[英]Using readHTMLtable from XML package to scrape site, uncertain error message

我正在使用XML包來抓取網站列表。 具體來說,我正在以下網站上的候選人名單中評分: votmart

候選人的頁面按數字順序排列,從1開始。 我的第一次嘗試,刮掉前50名候選人,看起來像這樣

library(xml)
library(plyr)

url <- paste("http://www.votesmart.org/candidate/evaluations/", 1:50 , sep = "")
res <- llply(url, function(i) readHTMLtable(i))

但是有兩個問題-例如,此序列中的第25 頁會產生404 "url not found"錯誤。 我已經通過首先獲取序列中每個頁面的XML錯誤計數的數據幀,然后排除具有單個錯誤的頁面來解決此問題。 特別

errors <- ldply(url, function(i) length(getXMLErrors(i)))
url2 <- url[which(errors$V1 > 1)]
res2 <- llply(url2, function(i) readHTMLTable(i))

這樣,我就從這個列表中排除了404生成的URL。

但是,仍然存在由列表中的許多頁面引起的問題,這導致此llply命令失敗。 以下是一個例子

readHTMLTable("http://www.votesmart.org/candidate/evaluations/6")

這會導致錯誤

Error in seq.default(length = max(numEls)) : 
  length must be non-negative number
In addition: Warning message:
In max(numEls) : no non-missing arguments to max; returning -Inf

但是,這些頁面從getXMLErrors命令生成的錯誤計數與工作頁面相同,因此在此方面我無法區分它們。

我的問題是-此錯誤是什么意思,有什么辦法讓readHTMLTable返回這些頁面的空列表,而不是錯誤? 失敗了,有沒有辦法我的llply語句可以檢查這些頁面並跳過那些導致錯誤的頁面?

為什么不只是一些簡單的錯誤處理?

res <- llply(url, function(i) try(readHTMLTable(i)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM