0

我正在编写一个“for”循环大量时间来抓取网页的代码。代码就像:

var request = require('request');
for(i=0; i<10000; i++){
//request goes here, with processing in its callback
}

但这会导致套接字挂断。然后我尝试同步请求来执行此操作,然后代码可以正常工作并按请求处理请求,但这会使执行速度变慢。例如,请指导如何处理大量网络请求以进行抓取。

4

1 回答 1

1

使用模块pool发送请求时,您应该查看选项。request

有 3 个选项:

  • 设置它false
  • 增加其maxSockets
  • 增加 http.globalAgent.maxSockets

例子:

for (var i = 0; i < 10000; i++) {
   // make a request
   request({
      pool: false,
      // other options
   }, function(err, res, body) {
       // handle response here
   });
}

参考:

于 2014-12-31T04:21:21.850 回答