我正試圖在法國議會下議院的網站上從兩頁中刪除所有法案。這些網頁覆蓋了2002 - 2012年,並且每個賬單少於1,000個賬單。如何在R中使用getURL()優化刮取
對於這一點,我getURL
勉強通過這個循環:
b <- "http://www.assemblee-nationale.fr" # base
l <- c("12","13") # legislature id
lapply(l, FUN = function(x) {
print(data <- paste(b, x, "documents/index-dossier.asp", sep = "/"))
# scrape
data <- getURL(data); data <- readLines(tc <- textConnection(data)); close(tc)
data <- unlist(str_extract_all(data, "dossiers/[[:alnum:]_-]+.asp"))
data <- paste(b, x, data, sep = "/")
data <- getURL(data)
write.table(data,file=n <- paste("raw_an",x,".txt",sep="")); str(n)
})
有沒有辦法在這裏優化getURL()
功能?我似乎無法通過傳遞async=TRUE
選項,這給了我同樣的錯誤每次使用併發下載:
Error in function (type, msg, asError = TRUE) :
Failed to connect to 0.0.0.12: No route to host
任何想法?謝謝!
'異步= TRUE'已經是如果你給多個URL默認 - 但開放同一網站 超過500個併發連接的可能不是一個好主意...... – 2012-04-09 03:34:35
好吧。那麼,我似乎無法改變getURL()'到目前爲止的工作方式。 – 2012-04-09 11:23:59