[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リクエストを送って、ファイルをダウンロードする方法でした。最後までご覧頂きましてありがとうございました。





