이때까지 내가 넥슨에 얼마 썼는지 알아 보는법을 공유하려 합니다.
빨간 부분은 본인명의 다른 계정에 사용한 과금액을 포함하는 코드입니다.
현재 계정의 과금액만 보고 싶은 경우에는 삭제하시면 됩니다.
let totalData = {};
function getData(data, year) {
let parser = new DOMParser();
let doc = parser.parseFromString(data, "text/html");
let scripts = doc.querySelectorAll("script");
scripts.forEach(script => {
if (script.textContent.includes('var data1 = [')) {
let dataString = script.textContent;
let dataRegex = /var data1 = \[([\ds,]+)\];/g;
let match = dataRegex.exec(dataString);
if (match) {
let arr = match[1].split(',').map(Number);
totalData[year] = totalData[year] || [];
totalData[year].push(...arr);
}
start = dataString.indexOf('var data2 = [');
end = dataString.indexOf('var option');
arr = dataString.substring(start + 13, end - 8).split(',');
totalData[year].push(...arr.map(Number));
}
});
}
async function fetchData(year, month) {
const response = await fetch(`https://member.nexon.com/cash/chargelist.aspx?pageno=1&pagecode=1&year=${year}&month=${month}`);
const data = await response.text();
getData(data, year);
}
async function processtotalData() {
await fetchData('2019', '12');
for (let i = 2019; i <= 2024; i++) {
await fetchData(i, '1');
}
let totalSum = 0;
let alertMessage = '';
for (const year in totalData) {
let sumCash = totalData[year].reduce((sum, value) => {
return sum + value;
}, 0);
alertMessage += `${year}년 총 결제 금액: ${sumCash.toLocaleString()}원\n`;
totalSum += sumCash;
}
alertMessage += `\n모든 연도의 총 결제 금액: ${totalSum.toLocaleString()}원`;
alert(alertMessage);
}
processtotalData();
4. 마무리
생각보다 현질을 꽤 했다는걸 알수가 있군요..
아무튼 이런식으로 연도별로 과금액을 알수 있게 구분해놨습니다.
현재 24년도 기준 최대 5년전 기록까지 볼수 있기 때문에 시간이 지나도 년도만 맞게 바꿔주면 계속해서 확인할 수 있습니다.
코드는 제 입맛대로 수정한거라.. 혹시나 고수분들 한번씩 보시고 수정했으면 하는 부분있으면 댓글 남겨주세용