Reputation: 53
my requirement is to read and store the simple image resources from facebook. Image URL:https://badge.facebook.com/badge/1.png
following are the Code snippet ( which i used to read a image from google) is not working as per my requirement it just storing a invalid image in my local disk
var fs = require('fs'),
request = require('request');
var download = function(uri, filename, callback){
request.get(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);
var r = request(uri).pipe(fs.createWriteStream(filename));
r.on('close', callback);
r.on('error', function(err) {console.log(err)})
});
};
download('https://badge.facebook.com/badge/1.png', 'google.png', function(){
console.log('Done downloading..');
});
Upvotes: 1
Views: 1380
Reputation: 1605
It's not problem of nodejs or request but facebook.
You can just use text editor to open google.png
, and it's a html file.
So perhaps facebook has some anti-crawler firewall.
just set header, for example:
var fs = require('fs'),
request = require('request');
var download = function(uri, filename, callback){
var r = request({
url: uri,
headers: {
'accept': 'image/*',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36',
}
}).pipe(fs.createWriteStream(filename));
r.on('error', function(err) {console.log(err)})
r.on('close', callback);
};
download('https://badge.facebook.com/badge/1.png', 'google.png', function(){
console.log('Done downloading..');
});
Upvotes: 2