node.js - 限制 Node.js 请求中的正文内容长度

标签 node.js request limit npm content-length

代码很简单。我只对 youtube.com 源代码的第一部分感兴趣,例如,当内容长度高于 10000 时,我想停止下载数据。我一直在尝试这样做,但没有成功。有什么想法吗?

var request = require('request');
var cheerio = require('cheerio');
var url = 'https://www.youtube.com/';


request(url, function(err, resp, body) {
  if (err)
      throw err;
    $ = cheerio.load(body);

});

最佳答案

不要使用回调,它仅在请求完成时触发,而您的请求永远不会被触发。

使用流:

var request = require('request')
var url = 'https://www.youtube.com/'

var stream = request({
   url: url,
   encoding: 'utf8'
})

var len = 0
var result = ''
stream.on('data', function(d) {
   len += Buffer.byteLength(d)
   result += d
   if (len > 1000) {
      stream.abort()
      console.log(d)
   }
})

关于node.js - 限制 Node.js 请求中的正文内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21577251/

相关文章:

request - Swift 2.0 中向服务器请求 JSON 的后台进程

request - 如何防止像Fiddler这样的软件拦截请求并拦截以 Electron 方式发出的请求

node.js 按域计算带宽使用

mysql - 限制专精

javascript - CopyWebpackPlugin 将目录内容复制到输出目录中

javascript - meteor JS : Selectively load javascript of each template

python - 如何使用 urllib 和 urllib2 登录该网站

java - "unlimited"系统下打开文件过多异常

javascript - react 路线与 URL 参数不更新 View

node.js - 如何使用 Node.js 生成 CouchDB UUID?