全くのJavaScript初心者から学習してきた流れとか、方法とか色々書きます。
作りたい物
ログインが必要なサイトからデータを集めるサービス。
要は、某アーケード音ゲーのスコアツールを作ってみたいということです。
(他スコアツールを参考にしながら作っています。)
やること
- ログイン状態で、任意のJavaScriptを実行→part1でやりました
- JavaScriptで欲しいデータのあるHTMLの収集・スコアの抽出→part2とpart3で
- 抽出したスコアを何かしらの形式で出力しDL→今回
DLの実装
調べてみたらこんな記事があったので、ここを参考にしました。
ただ、今回はGoogleChromeのみ対応する予定なのでChromeのみ書きました。
非同期処理(スコア取得処理)をDL前に行うのでDeferredを含めた関数にしています。
data_DL.js
// ファイルダウンロード処理
var handleDownload =function(scoreStr){
var dfr = $.Deferred();
var a = document.createElement('a');
a.download = 'scoreList.csv';
a.target = '_blank';
var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
var blob = new Blob([ bom, scoreStr ], { "type" : "text/csv" });
a.href = window.URL.createObjectURL(blob);
a.click();
dfr.resolve();
return dfr;
}
参考サイトと少し違うところはwindow.webkitURL.createObjectURLではなく、window.URL.createObjectURLを使っています。
最初はwindow.webkitURL.createObjectURL使ってたんですが、Chromeちゃんに非推奨だよと怒られたので...
あとCSVにする際にExcelで読める様にするために var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); とか入れてますが、なんかうまくいきません。
もちょっと頑張ってみます。
次回もあったらよろしくお願いします。