代码很简单。我只对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);
});
答案 0 :(得分:3)
不要使用回调,只有在请求完成时才会触发回复,而您的请求永远不会被激活。
使用流:
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)
}
})