Node.js 节点请求库错误:getaddrinfo ENOTFOUND dns.js 26

Node.js 节点请求库错误:getaddrinfo ENOTFOUND dns.js 26,node.js,http,asynchronous,web-scraping,request,Node.js,Http,Asynchronous,Web Scraping,Request,我以一种连续的方式(每天一次多次请求)抓取一个网站,每次都使用async和request节点模块进行抓取。我使用异步eachLimit(这里的代码中没有显示)并行运行函数getPage。但是,在数千次查询中,我会遇到以下错误: Error: getaddrinfo ENOTFOUND 247sports.com 247sports.com:80 at errnoException (dns.js:26:10) at GetAddrInfoReqWrap.onlookup [as

我以一种连续的方式(每天一次多次请求)抓取一个网站,每次都使用async和request节点模块进行抓取。我使用异步eachLimit(这里的代码中没有显示)并行运行函数getPage。但是,在数千次查询中,我会遇到以下错误:

Error: getaddrinfo ENOTFOUND 247sports.com 247sports.com:80
    at errnoException (dns.js:26:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26)
尽管我知道我传递的url是有效的。我发现有一些解决方案可以帮助人们使用http模块并得到相同的错误,但似乎没有人使用请求模块得到这个问题。 我知道我的ip没有被阻止,因为我能够在错误发生后立即访问该站点。我也知道我的用户代理不是问题所在,因为我在一个用户代理列表中轮换,所有这些都是有效的。 我猜问题在于请求库与节点http模块交互的位置。不幸的是,我无法准确地再现问题,因为当我同时或连续推送许多请求时,它似乎刚刚被触发

下面的函数代码是我的函数的样子:

function getPage(){
      var options = {
        url: "http://stackoverflow.com/",
        headers: { 'User-agent':  'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20110506 Firefox/4.0.1'
};
      request(options, function(err, resp, body) {

                if (err){
                    throw err;
                    return;
                }
                PagesScraped++;
                console.log(PagesScraped);
                return;
    });
};

for (var i = 0; i < 600; i++){
  getPage();
};
函数getPage(){ 变量选项={ url:“http://stackoverflow.com/", 标题:{“用户代理”:“Mozilla/5.0(X11;Linux x86_64;rv:2.0.1)Gecko/20110506 Firefox/4.0.1” }; 请求(选项、功能(错误、响应、正文){ 如果(错误){ 犯错误; 返回; } pagescraped++; 控制台日志(已分页); 返回; }); }; 对于(变量i=0;i<600;i++){ getPage(); }; 注意:我意识到这段代码异步获取同一页面600次,但如果运行足够多次,错误仍然存在……我的本地代码访问同一网站上的数千个页面