BB-DataとかBBScoreに流し込めるよう整形する前に飽きた。
cscript //Nologo bbnet.js > bbnet.txt
などすると
BorderBreak.NET にアクセス カード にアクセス カード にアクセス プレイヤー情報 全国スコアランキング(今月) 10001 プレイ情報 通算プレイ時間 71:21 通算バトル時間 60:42 兵装別プレイ情報 お気に入り兵装 通算戦績 バトル数 412 勝利回数 179 撃破数 1675 クラス認定ミッション カード にアクセス 強襲兵装 バトル時間 32:47 出撃数 1964 獲得スコア 19062 使用率 61.68 (以下省略)
こんなかんじのが出てくる。
// bb.js var oIE = WScript.CreateObject("InternetExplorer.application"); oIE.visible = false; var waittime = 100; // ユーザID、パスワード、登録したカード名 var userId = "xxxx@xxxx.isao.net"; var password = ""; var cardName = ""; function wait() { while(oIE.Busy) { WScript.sleep(waittime); } while(oIE.document.readyState != "complete") { WScript.sleep(waittime); } } function open(url) { oIE.navigate(url); wait(); WScript.echo(oIE.document.title + " にアクセス"); } function login() { open("http://pc.borderbreak.net/login_off.html"); oIE.document.forms[0]["uid"].value = userId; oIE.document.forms[0]["password"].value = password; oIE.document.forms[0].submit(); wait(); } function getElementsByInnerText(htmlc, str) { var arr = new Array(); for(i = 0; i < htmlc.length; i++) { if(htmlc[i].innerText == str) { arr.push(htmlc[i]); } } return arr; } function getElementsByClassName(htmlc, str) { var arr = new Array(); for(i = 0; i < htmlc.length; i++) { if(htmlc[i].className == str) { arr.push(htmlc[i]); } } return arr; } function getBattleResult(info) { var divs = oIE.document.getElementsByTagName("div"); var catName = ""; var dataName = ""; for(var i = 0; i < divs.length; i++) { if(divs[i].className == "category_name") { catName = divs[i].innerText.replace(/▼/i, ""); info[catName] = new Object(); WScript.echo(catName); } else if((divs[i].className == "data_name") && (catName != "")) { dataName = divs[i].innerText; WScript.echo(" " + dataName); var value = ""; value = divs[i].nextSibling.data; if(!value) continue; value = value.replace(/時間/i, ":"); value = value.replace(/[^0123456789:\.]/gi, ""); WScript.echo(" " + value); info[catName][dataName] = value; } } return info; } login(); // カードを開く open(getElementsByInnerText(oIE.document.getElementsByTagName("A"), cardName)[0].href); // カードトップのリンクを保存 var topLinks = oIE.document.getElementsByTagName("A"); // 戦績データ var info = new Object(); // カード->プレイヤー情報を開く open(getElementsByInnerText(topLinks, "プレイヤー情報")[0].href); getBattleResult(info); // カード->プレイヤー情報からのリンク保存 var playerInfoLinks = oIE.document.getElementsByTagName("A"); var armsUrl = getElementsByInnerText(playerInfoLinks, "兵装別プレイ情報詳細")[0].href; var detailUrl = getElementsByInnerText(playerInfoLinks, "戦績詳細")[0].href; // カード->プレイヤー情報->兵装別詳細を開く open(armsUrl); getBattleResult(info); // カード->プレイヤー情報->戦績詳細を開く open(detailUrl); getBattleResult(info);