7
nseindia.comからファイルをダウンロードしてメモリに解凍しようとしています。私はnodejs webkitとadm-zipを使用しています。コンソールでエラーが表示されます。nodejs URLからファイルをダウンロードして解凍します。エンドヘッダーが見つかりません。
未読無効またはサポートされていないzip形式です。私は、ストリームが、なしの成功を終了するには、次の試してみました
var http = require('http'), fs = require('fs'), request = require('request'), AdmZip = require('adm-zip'), out = fs.createWriteStream('data/nseeqbhav.zip'); // For saving NSE Equity bhavcopy // Downloading NSE Bhavcopy request( { method: 'GET', uri: 'http://www.nseindia.com/content/historical/EQUITIES/2012/DEC/cm19DEC2012bhav.csv.zip', headers: { "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11", "Referer": "http://www.nseindia.com/products/content/all_daily_reports.htm", "Accept-Encoding": "gzip,deflate,sdch", "encoding": "null", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Cookie": "cookie" } } ).pipe(out); var zip = new AdmZip("data/nseeqbhav.zip"), zipEntries = zip.getEntries(); zip.extractAllTo(/*target path*/"data/unzip/", /*overwrite*/true);
:いいえENDヘッダーは
コードは認められませんでした。
out.end();
out.destroy();
ありがとうございます。
ありがとうございました。出来た。 1つの質問は、ダウンロードされたファイル(解凍している)に複数のzipがある場合、どのように抽出するのでしょうか? adm-zipには「終了」イベントはありません。 – mrkanitkar
私が見る限り、 'extractAllTo'メソッドは同期です。抽出が完了するまでイベントループをブロックします。したがって、ここでは 'end'イベントは必要ありません。同期ライブラリには注意が必要です。それはnode.jsの方法ではなく、高負荷時にフリーズする可能性があります。 –