使用node.js下载并保存favicon?
我正在尝试使用Node.js从网站下载favicon,但遇到了一些问题 我的代码如下:使用node.js下载并保存favicon?,node.js,Node.js,我正在尝试使用Node.js从网站下载favicon,但遇到了一些问题 我的代码如下: //Imports ... var theurl = http.createClient(80, 'a1.twimg.com'); var requestUrl = 'http://a1.twimg.com/a/1284159889/images/favicon.ico'; var request = theurl.request('GET', requestUrl, {"host": "a1.twimg.
//Imports ...
var theurl = http.createClient(80, 'a1.twimg.com');
var requestUrl = 'http://a1.twimg.com/a/1284159889/images/favicon.ico';
var request = theurl.request('GET', requestUrl, {"host": "a1.twimg.com"});
request.end();
request.addListener('response', function (response)
{
var body = '';
response.addListener('data', function (chunk) {
body += chunk;
});
response.addListener("end", function() {
fs.writeFileSync('favicon.ico', body.toString('binary'), 'binary');
});
});
然而,得到的图标只是垃圾,当我以这种方式抓取它时,我怀疑它与favicon的编码有关。这样做的正确方法是什么?尝试作为响应回调的第一行
response.setEncoding('binary')
,或者(因为这不是首选的(按节点)设置的编码)response.setEncoding(null)
,这将使它成为一个缓冲区。然后直接写正文,不在上面执行任何操作
fs.writeFileSync('favicon.ico',body',binary')
我必须执行response.setEncoding(“binary”)
并为writeFileSync提供第三个参数:
fs.writeFileSync('favicon.ico', body, 'binary')
这种组合对我很有效。谢谢。不使用response.setEncoding(null),但使用response.setEncoding(“二进制”)。@jimt-您是否也尝试过使用
null
,然后跳过写入中的第三个参数?所以它是fs.wFS('favicon',body)代码>