news 2026/10/20 16:22:33

2025最强NodeJS京东自动化开发指南:从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2025最强NodeJS京东自动化开发指南:从入门到精通

2025最强NodeJS京东自动化开发指南:从入门到精通

前言:解放双手的京东生态自动化方案

你是否还在每天手动完成京东签到、农场浇水、领豆任务?是否因错过限时活动而懊悔?本项目通过NodeJS生态打造的全自动化脚本体系,已帮助10万+用户实现京东系应用全流程自动化,日均节省2小时重复操作。本文将从环境搭建到核心开发,带你掌握企业级京东自动化解决方案,成为脚本开发高手。

读完本文你将获得

  • 搭建高可用京东自动化开发环境
  • 掌握15+核心功能模块的配置与扩展
  • 实现多账号管理与智能任务调度
  • 接入9种通知渠道实时监控任务状态
  • 从零开发自定义自动化任务的能力

项目概述:技术栈与架构设计

项目定位

基于NodeJS的京东生态自动化工具集,提供签到、领豆、农场、宠物等30+核心功能,支持多账号并行操作与跨平台部署。

技术架构

核心技术栈

技术版本用途
NodeJS≥14.0.0运行环境
TypeScript5.0.4类型安全开发
Axios0.21.4HTTP请求
Crypto-js4.1.1数据加密
Dotenv16.0.3环境变量管理
Date-fns2.30.0时间处理

快速开始:10分钟上手实战

环境准备

# 1. 克隆仓库 git clone https://gitcode.com/gh_mirrors/en/enen.git cd enen # 2. 安装依赖(国内用户推荐) npm install -g cnpm --registry=https://registry.npmmirror.com cnpm install # 3. 配置环境变量 cp .env.example .env

核心配置(.env文件)

# 京东Cookie(多账号用&分隔) JD_COOKIE=pt_key=xxx;pt_pin=xxx;&pt_key=yyy;pt_pin=yyy; # 通知配置(至少选一种) PUSH_KEY=xxx # Server酱 BARK_PUSH=https://api.day.app/xxx # Bark推送 TG_BOT_TOKEN=xxx # 即时通讯机器人

首次运行

# 执行签到领豆脚本 ts-node jd_bean_sign.ts # 执行农场自动化脚本 ts-node jd_farm.ts

核心功能模块详解

任务模块总览

脚本文件功能描述调度时间依赖模块
jd_bean_sign.ts京东签到领豆8 10 * * *H5ST签名
jd_farm.ts东东农场浇水15 8-10,18-20 * * *任务系统、助力系统
jd_cash.ts现金签到9 0 * * *用户认证
jd_health.ts健康社区任务30 7 * * *表单提交
jd_joy_park_run.ts汪汪乐园赛跑*/30 * * * *WebSocket

签到领豆模块深度解析

核心代码
async main(user: User) { try { // 1. 初始化用户代理与签名工具 this.user = user this.user.UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/98.0.4758.102 Safari/537.36" this.h5stTool = new H5ST('64e35', this.fp, this.user.UserAgent, this.user.UserName, 'https://h5.m.jd.com/', 'https://h5.m.jd.com/') await this.h5stTool.genAlgo() // 2. 生成签名参数 let timestamp: number = Date.now() let h5st = this.h5stTool.genH5st('235ec', {"fp": "-1", "shshshfp": "-1"}, 'apple', '12.1.4', 'signBeanAct', timestamp) // 3. 发送签到请求 let res: any = await this.get(`https://api.m.jd.com/client.action?functionId=signBeanAct&body=${encodeURIComponent(JSON.stringify({"fp": "-1"}))}&h5st=${h5st}`, { 'Host': 'api.m.jd.com', 'Cookie': this.user.cookie }) // 4. 结果处理与通知 if (res.data.status === '1') { console.log('签到成功', res.data.dailyAward.beanAward.beanCount * 1) await this.sendNotify("签到成功", `获得豆数量: ${res.data.dailyAward.beanAward.beanCount}`) } } catch (e) { console.log(e.message) } }
执行流程

高级配置:打造企业级自动化系统

多账号管理方案

// jdCookie.js 核心实现 const fs = require('fs') const dotenv = require('dotenv') let CookieJDs = [] // 从环境变量加载 if (process.env.JD_COOKIE) { // 支持&分隔或换行分隔的多账号 if (process.env.JD_COOKIE.indexOf('&') > -1) { CookieJDs = process.env.JD_COOKIE.split('&'); } else if (process.env.JD_COOKIE.indexOf('\n') > -1) { CookieJDs = process.env.JD_COOKIE.split('\n'); } else { CookieJDs = [process.env.JD_COOKIE]; } } // 去重与过滤空值 CookieJDs = [...new Set(CookieJDs.filter(item => !!item))]

通知系统配置指南

支持9种通知渠道,配置示例:

Server酱(微信通知)
# .env配置 PUSH_KEY=SCT1234567890abcdefghijklmnopqrstuvwxyz
即时通讯机器人
TG_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 TG_USER_ID=123456789
企业微信应用
QYWX_AM=wwcff56746d9adwers,B-791548lnzXBE6_BWfxdf,mingcheng,1000001

任务调度:精准控制执行时机

Cron表达式完全指南

字段允许值示例说明
分钟0-59*/30每30分钟
小时0-238-108到10点
日期1-311,15每月1和15日
月份1-12*/2每2个月
星期0-60,6周末

自定义调度示例(pm2.config.js)

module.exports = { apps: [ { name: "jd_bean_sign", script: "./jd_bean_sign.ts", interpreter: "ts-node", cron_restart: "8 10 * * *", // 每天10:08执行 autorestart: false, watch: false }, { name: "jd_farm", script: "./jd_farm.ts", interpreter: "ts-node", cron_restart: "15 8,18 * * *", // 每天8:15和18:15执行 autorestart: false, watch: false } ] };

扩展开发:从零创建自定义任务

开发步骤

  1. 创建新文件jd_my_task.ts
  2. 继承JDHelloWorld基类
  3. 实现核心方法
  4. 配置调度时间

示例:创建"京东健康社区"任务

/** * 京东健康社区任务 * cron: 30 7 * * * */ import {User, JDHelloWorld} from "./TS_JDHelloWorld" import {H5ST} from "./utils/h5st" class Jd_health extends JDHelloWorld { user: User h5stTool: H5ST fp: string = '' constructor() { super(); } async init() { this.fp = await this.getFp4_1() await this.run(this) } async main(user: User) { try { this.user = user // 1. 任务初始化... // 2. 执行任务逻辑... // 3. 结果处理与通知... console.log(`账号${user.index+1}健康社区任务完成`) } catch (e) { console.log(e.message) } } } new Jd_health().init().then()

常见问题与解决方案

签名相关问题

问题现象可能原因解决方案
h5st参数错误算法失效执行npm run update更新h5st模块
403 ForbiddenUserAgent过期更新TS_JDHelloWorld.js中的UA字符串
签名生成超时网络问题设置代理或切换网络环境

通知相关问题

问题现象解决方案
Server酱无通知检查PUSH_KEY是否正确,访问sc.ftqq.com测试
Bark推送失败确保BARK_PUSH包含完整URL,如https://api.day.app/xxx
即时通讯无法连接配置TG_PROXY_HOST和TG_PROXY_PORT

部署方案对比

部署方式优点缺点适用场景
本地手动调试方便需保持电脑开机开发测试
树莓派24小时运行需购买硬件个人长期使用
云服务器稳定可靠有一定成本企业级应用
GitHub Actions免费有运行时间限制简单任务调度

云服务器部署脚本

# 1. 安装PM2进程管理 cnpm install -g pm2 # 2. 启动任务 pm2 start ecosystem.config.js # 3. 保存并设置开机自启 pm2 save pm2 startup

贡献指南

代码提交规范

<类型>[可选作用域]: <描述> [可选正文] [可选脚注]

类型包括:

  • feat: 新功能
  • fix: 错误修复
  • docs: 文档更新
  • style: 代码格式
  • refactor: 重构
  • test: 测试相关
  • chore: 构建过程或辅助工具变动

PR流程

  1. Fork本仓库
  2. 创建分支git checkout -b feature/amazing-feature
  3. 提交变更git commit -m 'feat: add some amazing feature'
  4. 推送到分支git push origin feature/amazing-feature
  5. 创建Pull Request

总结与展望

本项目通过模块化设计与签名算法封装,实现了京东生态的全流程自动化。目前已支持20+核心功能,日均执行任务超100万次。未来将重点优化:

  1. AI驱动的任务优先级调度
  2. 图形化配置界面
  3. 更完善的错误重试机制
  4. 多平台容器化部署方案

附录:核心依赖库说明

依赖名称版本用途国内CDN
axios0.21.4HTTP客户端https://cdn.jsdelivr.net/npm/axios@0.21.4/dist/axios.min.js
crypto-js4.1.1加密算法https://cdn.jsdelivr.net/npm/crypto-js@4.1.1/crypto-js.min.js
dotenv16.0.3环境变量https://cdn.jsdelivr.net/npm/dotenv@16.0.3/lib/main.js
date-fns2.30.0日期处理https://cdn.jsdelivr.net/npm/date-fns@2.30.0/index.js

关注与支持

如果本项目对你有帮助,请:

  • 点赞 👍
  • 收藏 ⭐
  • 关注作者 👤

下期预告:《京东自动化高级实战:逆向API与签名分析》

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 1:59:28

AnyPS5:打造PS5玩家的折扣监控与素材整理辅助工具

如果你也有一台PS5&#xff0c;大概会在某个周末深夜面对一个略显尴尬的局面&#xff1a;游戏库里躺着十几款买完没怎么玩的大作&#xff0c;截图库里堆着上千张自己都忘了何时存的画面&#xff0c;云存档是否同步成功全靠手感&#xff0c;想找人联机时群里永远只有零星的"…

作者头像 李华
网站建设 2026/10/19 1:51:32

基于PCA9422与PIC18F96J65的电池供电电源管理设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/19 7:41:35

PS5串流实战:不拆机不改硬件,主机变全屋可玩游戏中枢

最近我把家里落灰的主机“救”了回来&#xff0c;不是清灰&#xff0c;而是给它加了一套跨设备游玩方案&#xff0c;也就是这个被我命名为 AnyPS5 的小项目。一句话解释&#xff1a;它让主机不再锁死在客厅电视前面&#xff0c;而是能在卧室平板、办公笔记本、床头手机、甚至便…

作者头像 李华
网站建设 2026/10/20 15:24:19

遥感岩性智能识别:极端随机树与群体优化调参实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华