Node.jsで指定したWebページをダウンロードする

Node.jsを使って簡単にWebページをダウンロードしてみます。

getpage.js

// requireモジュール取り込み
var http = require('https'); // HTTPモジュール
var fs = require('fs'); // ファイル関連モジュール

// 保存先指定
var savepath = "download.html";
// 出力先指定
var outfile = fs.createWriteStream(savepath);
// 引数の受け取り
var url = process.argv[2];

if(url === undefined){
	console.log("引数がありません:",url);
	return;
}

// 非同期でURLからファイルダウンロード
http.get(url, function(res){
	res.pipe(outfile);
	res.on('end', function(){
		outfile.close();
		console.log("complete");
	});
});

こんな感じで、引数にURLを渡して実行すると渡したURLからダウンロードを実行してくれます。

$ node getpage.js https://yoda56.com
complete

とりあえずWebスクレイピング前の基本として

–自分用の処理順メモ–
Node.jsは非同期で実行するので、処理完了を待ちません。
なので、この場合だとhttp.get(url)のリクエストを出して処理を戻します。
処理が終わるとコールバック関数のfunction(res)が呼ばれます。
res.pipe(outfile)で保存するように指示を出します、ここでまた処理を戻します。
処理が終わるとres.on(‘end’, function()の部分が呼ばれ処理が完了する。

【広告】

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です