首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RCurl,错误:连接超时

RCurl,错误:连接超时
EN

Stack Overflow用户
提问于 2011-10-01 11:44:31
回答 2查看 2.7K关注 0票数 1

我使用R的XML和RCurl包从网站获取数据。脚本需要废弃600万页,所以我创建了一个循环。

代码语言:javascript
运行
复制
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分钟内无法从我的笔记本电脑访问这个网页。我想使用命令将进程延迟15分钟,每1000页报废一页。

代码语言:javascript
运行
复制
if(page==1000) Sys.sleep(901)

但什么都没变。

有什么想法,哪里出了问题,如何克服这一问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-05 10:43:00

我解决了。只是在每次迭代中添加了Sys.sleep(1)

票数 1
EN

Stack Overflow用户

发布于 2012-11-26 22:53:52

您可以使用命令curl在R中调用本机安装的System()。这样,您就可以访问RCurl目前不支持的所有RCurl选项,比如--retry <num>。选项--retry <num>将导致发出的curl查询在每次失败后的更长时间内重复重试,即在第一次失败后重试1秒,在第二次失败之后重试2秒,在第三次失败之后重试4秒,等等。其他时间控制选项也可在cURL站点http://curl.haxx.se/docs/manpage.html上使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7620027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档