我使用 R 的 XML 和 RCurl 包从网站获取数据。该脚本需要废弃 6,000,000 页,因此我创建了一个循环。
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")
.....
.....
.....}
但是,经过几个循环后,我收到错误消息:
curlPerform 中的错误(curl = curl,.opts = opts,.encoding = .encoding):连接超时
问题是我不明白“超时”是如何工作的。有时该过程在 700 页之后结束,而其他时候在 1000、1200 等页面之后结束。台阶不稳定。当连接超时时,我在 15 分钟内无法从笔记本电脑访问此网页。我想过每报废 1000 页使用命令将进程延迟 15 分钟
if(page==1000) Sys.sleep(901)
,但没有任何改变。
任何想法出了什么问题以及如何克服这个问题?