superagent采集出现问题 ETIMEDOUT
发布于 8 年前 作者 sydney 3843 次浏览 来自 问答

采集百度搜索结果页中的相关搜索词(无限采集下去,结果中有相关搜索词则以相关词继续搜索抓取) 当前采集了: 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);
                });
        });
    }
回到顶部