关于request.pipe()的问题
发布于 6 年前 作者 heguangda 4235 次浏览 来自 问答

看到网上爬虫爬取图片的写法都是 request(src).pipe(fs.createWriteStream(’./img/’+img_filename)); 之类的。 为什么我用request拿回来的response.pipe(fs.createWriteStream(’./img/’+img_filename))会不行呀,然后手动监听了response.on(‘data’,func),没有进入data事件,但是打印这个response,看到body却有图片的信息,虽然是乱码的

这是可以拿到图片的代码 var fs = require(‘fs’) var request = require(‘request’) var options = { url:‘https://ww1.sinaimg.cn/large/006tNc79ly1fcvrbhd3ddj30i90dl3z0.jpg’, method: ‘get’, } var req = request(options,function(err,res,body){ console.log(res.headers) }) var write = fs.createWriteStream(’./cnode.jpg’) req.pipe(write)

这是不可以拿到图片的代码 var fs = require(‘fs’) var request = require(‘request’) var options = { url:‘https://ww1.sinaimg.cn/large/006tNc79ly1fcvrbhd3ddj30i90dl3z0.jpg’, method: ‘get’, } var req = request(options,function(err,res,body){ var write = fs.createWriteStream(’./cnode.jpg’) res.pipe(write) })

2 回复

我觉得你可以放出一下你的这部分代码,让我们可以有一个可以复现的效果,不然你的问题没人可以回答。

另外这个地方用的是 nodejs 的 Stream API, 我觉得你可以先参考一下这部分api

@cctv1005s 好的 哦 我整理一下

回到顶部