Tôi đang cố gắng để cạo tất cả các hóa đơn từ hai trang trên trang web của Hạ viện Pháp của quốc hội. Các trang bao gồm 2002-2012 và đại diện cho ít hơn 1.000 hóa đơn mỗi.Làm thế nào để tối ưu hóa cào với getURL() trong R
Đối với điều này, tôi cạo với getURL
qua vòng lặp này:
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)
})
Có cách nào để tối ưu hóa các chức năng getURL()
đây? Tôi không thể sử dụng tải xuống đồng thời bằng cách chuyển tùy chọn async=TRUE
, tùy chọn này mang lại cho tôi cùng một lỗi mỗi lần:
Error in function (type, msg, asError = TRUE) :
Failed to connect to 0.0.0.12: No route to host
Bất kỳ ý tưởng nào? Cảm ơn!
'async = TRUE' đã là mặc định nếu bạn cho nhiều URL - nhưng mở hơn 500 kết nối đồng thời với cùng website có thể không phải là một ý tưởng tốt ... –
Được rồi. Vâng, tôi không thể thay đổi nhiều như thế nào 'getURL()' hoạt động cho đến nay. –