我使用R的XML和RCurl包來從網站獲取數據。 該腳本需要廢棄6,000,000頁,所以我創建了一個循環。RCurl,錯誤:連接超時
for (page in c(1:6000000)){
my_url = paste('http://webpage.....')
page1 <- getURL(my_url, encoding="UTF-8")
mydata <- htmlParse(page1, asText=TRUE, encoding="UTF-8")
title <- xpathSApply(mydata, '//head/title', xmlValue, simplify = TRUE, encoding="UTF-8")
.....
.....
.....}
然而,幾圈後,我得到的錯誤信息:
Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) : connection time out
的問題是,我不明白的「超時」是如何工作的。有時候,這個過程會在700頁之後結束,而其他時間則在1000,1200頁之後結束。這一步並不穩定。 當連接超時時,我無法從筆記本電腦訪問此網頁15分鐘。 我想用一個命令來拖延這一進程15分鐘,每1000頁報廢
if(page==1000) Sys.sleep(901)
,但什麼都沒有改變。
任何想法出了什麼問題,以及如何克服?
可能重複的[RCurl,錯誤:無法連接到主機](http://stackoverflow.com/questions/7620123/rcurl-error-couldnt-connect-to-host) – csgillespie
我認爲你需要處理HTTP錯誤,如果你打算通過6M頁面。另外,你說「一個網站」 - 如果你打的是同一個網站,我敢打賭,某種自適應防火牆正在踢,暫時阻止你。 (你是尊重robots.txt,對吧?) –
我解決了它。剛添加Sys.sleep(1)到每個迭代 – Def