【三角洲行动】Node.js 批量查询账号信息

发布时间:2026/10/6 15:44:05
【三角洲行动】Node.js 批量查询账号信息 前言管理多个三角洲账号时手动逐个登录查信息效率极低。本文介绍一套基于 Node.js 的自动化查询方案——先用pi.js获取账号的 openid再用openidQuery.js批量拉取角色名、等级、金币、资产等核心数据最终一键导出到 Excel。一、项目概述本项目由两个脚本配合使用缺一不可脚本作用使用顺序pi.js调用 WeGame 接口获取当前登录账号的 openid①openidQuery.js读取 openid 列表批量查询多账号数据并写入 Excel②工作流程登录 WeGame → 运行 pi.js → 拿到 openid ↓ 写入 openid.txt可多账号 ↓ 运行 openidQuery.js → 批量查询 → 导出 Excel最终可查询到的字段角色名、等级、金币K/M 格式化、账号资产、最后登出时间、是否封禁二、环境准备安装 Node.js确保本地已安装 Node.js建议 v16node -v npm -v安装依赖npm install request xlsx exceljs依赖包用途request发送 HTTP 请求xlsxExcel 文件基础处理exceljs读写 Excel保留原有格式目录结构project/ ├── config/ │ ├── openid.txt # openid 账号列表由 pi.js 结果手动填入 │ └── output.xlsx # 输出 Excel需提前创建模板 ├── pi.js # Step 1获取 openid └── openidQuery.js # Step 2批量查询并导出三、完整代码pi.js获取 openidjavascriptconst cookie (https://www.wegame.com.cn/helper/df/score/)里获取 var request require(request); var options { method: POST, url: https://www.wegame.com.cn/api/v1/wegame.pallas.dfm.DfmBattle/GetRoleInfo, headers: { referer: https://www.wegame.com.cn/helper/df/score/, Cookie: cookie, Content-Type: application/json }, body: JSON.stringify({ from_src: df_web, account_type: 1, area: 36 }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });openidQuery.js批量查询 导出 Excelconst request require(request); const fs require(fs); const path require(path); const XLSX require(xlsx); const ExcelJS require(exceljs); const cookie (https://df.qq.com/cp/a20240906main/index.html)里获取; const txtPath path.resolve(__dirname, ./config/openid.txt); const lines fs.readFileSync(txtPath, utf-8).trim().split(\n); const accounts lines .map(line { const parts line.trim().split(/\s/); return { qq: parts[0], openid: parts[1] }; }) .filter(a a.openid a.openid ! null); function formatNum(val) { const n Number(val); if (n 1_000_000) return (n / 1_000_000).toFixed(1) M; if (n 1_000) return (n / 1_000).toFixed(1) K; return n; } function queryOne(account) { return new Promise((resolve) { const url https://comm.ams.game.qq.com/ide/?iChartId369172iSubChartId369172sIdeTokenFDNRsRsource5sArea36openid${account.openid}param{source:5,openid:${account.openid}}; request( { method: POST, url, headers: { Cookie: cookie, content-type: application/x-www-form-urlencoded; } }, (error, response) { if (error) { console.error([${account.qq}] 请求失败:, error.message); return resolve(null); } try { const resData JSON.parse(response.body); if (resData.ret 0 resData.jData?.data) { const d resData.jData.data; const row { QQ号: account.qq, 角色名: decodeURIComponent(d.charac_name), 等级: d.level, 金币: formatNum(d.hafcoinnum), 资产: formatNum(d.propcapital), 最后登出: new Date(d.lastlogouttime * 1000).toLocaleString(), 是否封禁: d.isbanuser 1 ? 是 : 否, }; console.log([OK] ${row.角色名} | 等级 ${row.等级} | 金币 ${row.金币}); resolve(row); } else { console.log([${account.qq}] 查询失败:, resData.sMsg); resolve(null); } } catch (e) { console.error([${account.qq}] 解析失败:, e.message); resolve(null); } } ); }); } function delay(ms) { return new Promise(res setTimeout(res, ms)); } async function saveXlsx(results, outPath) { const wb new ExcelJS.Workbook(); await wb.xlsx.readFile(outPath); const ws wb.getWorksheet(账号数据); results.forEach((row, i) { const rowNum i 2; const values Object.values(row); values.forEach((val, j) { const cell ws.getCell(rowNum, j 1); if (/^\d$/.test(String(val))) { cell.value Number(val); } else { cell.value String(val); } }); }); await wb.xlsx.writeFile(outPath); console.log(\n已保存到 ${outPath}共 ${results.length} 条); } async function main() { const results []; for (const account of accounts) { const row await queryOne(account); if (row) results.push(row); await delay(500); } if (results.length 0) { console.log(没有有效数据); return; } const outPath path.resolve(__dirname, ./config/output.xlsx); await saveXlsx(results, outPath); } main();

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询