[NodeJS] ファイルをダウンロードする
こんにちは、@yoheiMuneです。
今日も超マイナーネタですが、node.jsを用いてテキストファイルやバイナリーファイルをダウンロードする方法をブログに書きたいと思います。
httpモジュールを使って、以下のようにダウンロードすることが出来ます。
今回はダウンロードした内容をそのままファイルへ出力するサンプルです。
最後までご覧頂きましてありがとうございました。
今日も超マイナーネタですが、node.jsを用いてテキストファイルやバイナリーファイルをダウンロードする方法をブログに書きたいと思います。
テキストファイルをダウンロードする
まずはテキストファイルのダウンロードです。今回はiTunesのRSS(=XMLファイル)をダウンロードします。httpモジュールを使って、以下のようにダウンロードすることが出来ます。
// モジュールロード var http = require('http'); // ダウンロード先URLを指定する var url = 'http://itunes.apple.com/jp/rss/topsongs/limit=100/xml'; // ダウンロードする var rss = ''; var req = http.get(url, function (res) { // テキストファイルの場合は、エンコード指定は重要! res.setEncoding('utf8'); // データを受け取るたびに、文字列を追加 res.on('data', function (xml) { rss += xml; }); // ファイルのダウンロードが終わるとendイベントが呼ばれる res.on('end', function () { console.log('finish loading rss feed.'); }); }); // 通信エラーなどはここで処理する req.on('error', function (err) { console.log('Error: ', err); return; });こんな感じで、httpモジュールとrequest,responseオブジェクトを使ってファイルダウンロードが出来ます。
画像などのバイナリーファイルをダウンロードする
続いてバイナリーファイルです。今回はダウンロードした内容をそのままファイルへ出力するサンプルです。
// モジュールロード var http = require('http'); var fs = require('fs'); // URLを指定 var url = 'http://yoheim.net/image/269.jpg'; // 出力ファイル名を指定 var outFile = fs.createWriteStream('file.jpg'); // ダウンロード開始 var req = http.get(url, function (res) { // ダウンロードした内容をそのまま、ファイル書き出し。 res.pipe(outFile); // 終わったらファイルストリームをクローズ。 res.on('end', function () { outFile.close(); }); }); // エラーがあれば扱う。 req.on('error', function (err) { console.log('Error: ', err); return; });テキストファイルと似たような感じで、ファイルをダウンロード出来ます。
最後に
簡単な内容ですが、nodejsでHTTPリクエストを送って、ファイルをダウンロードする方法でした。最後までご覧頂きましてありがとうございました。