Raja Sekar Durairaj
Raja Sekar Durairaj

Reputation: 53

using node js need to download the image from Facebook

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..');
  });
please help me on this....

Upvotes: 1

Views: 1380

Answers (1)

alsotang
alsotang

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

Related Questions