superagent采集出现问题 ETIMEDOUT
采集百度搜索结果页中的相关搜索词(无限采集下去,结果中有相关搜索词则以相关词继续搜索抓取) 当前采集了: 26499个网页 出现以下两种错误: 一、 ECONNRESET (1个) (找资料说是服务器断开连接导致) date:2016-08-15 16:35:22 URL:https://www.baidu.com/s?wd=成都市武侯区人民医院&tn=baiduhome_pg ERR:{“code”:“ECONNRESET”,“errno”:“ECONNRESET”,“syscall”:“read”} RES:undefined 二、ETIMEDOUT (16个) (设置了超时时间感觉也无效) date:2016-08-15 16:39:38 URL:https://www.baidu.com/s?wd=幼儿园洗手间隔断&tn=baiduhome_pg ERR:{“code”:“ETIMEDOUT”,“errno”:“ETIMEDOUT”,“syscall”:“connect”,“address”:“180.97.33.107”,“port”:443} RES:undefined
请大神帮忙看看!! 这两种错误有没有什么处理方案 目前能想到的就是抓取失败的链接重新加入抓取列表.
//主要代码如下
function agentPromise(url) {
return new Promise(function(resolve,reject) {
agent
.get(url)
.set(headers)
//.proxy(proxy_ip)
.timeout(3600*1000)
.end(function(err,res) {
if(err) {
err_q.push({
url:url,
err:err,
res:res
});
reject(err);
return ;
}
res = res || {text:''};
var items = getWord(res.text);//返回页面中相关搜索词数组
items = tools.unique(items);
//res.header.items = items;
if(items.length > 0) db.addAll(items);
resolve(items);
});
});
}