☰
京东自动化脚本开发实战:基于enen项目的二次开发教程
2026/10/10 5:35:32 网站建设 项目流程

京东自动化脚本开发实战:基于enen项目的二次开发教程

enen项目是一个强大的京东自动化工具集合,提供了丰富的脚本功能,如种豆得豆、签到领红包、农场浇水等日常任务的自动化实现。本文将带你快速掌握基于enen项目进行京东自动化脚本二次开发的完整流程,即使是编程新手也能轻松上手。

一、环境准备:3分钟搭建开发环境

1.1 安装基础依赖

确保你的系统已安装Node.js(推荐v14+)和Git,执行以下命令检查环境:

node -v # 查看Node.js版本 git --version # 查看Git版本

1.2 获取项目源码

通过Git克隆enen项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/en/enen cd enen npm install # 安装项目依赖

1.3 目录结构速览

核心文件说明:

  • jd_plantBean.js:京东种豆得豆主脚本,包含任务逻辑和API调用
  • utils/h5st.js:京东H5ST签名算法实现,用于接口请求加密
  • jdCookie.js:Cookie管理工具,处理多账号登录状态
  • TS_JDHelloWorld.ts:基础类库,提供HTTP请求、日志输出等通用功能

二、核心功能解析:从现有脚本学习

2.1 京东种豆得豆脚本分析

以jd_plantBean.js为例,该脚本实现了自动种植、浇水、助力等功能:

  • 定时任务配置:支持通过cron表达式设置执行频率(如1 7-21/2 * * *表示每天7-21点每2小时执行)
  • 多账号支持:通过Cookie数组实现多京东账号切换执行
  • API调用流程:封装了京东种豆接口https://api.m.jd.com/client.action,包含请求参数构造、签名计算和响应处理

2.2 通用工具类使用

项目提供了丰富的工具函数简化开发:

  • User-Agent管理:USER_AGENTS.js 提供大量京东APP模拟UA,避免请求被拦截
  • H5ST签名:utils/h5st.js 实现京东H5ST v4.2/v4.3签名算法,直接调用getH5st()即可生成签名
  • 通知推送:utils/pushplus.ts 支持将任务结果推送到微信、短信等渠道

三、二次开发实战:编写自定义任务脚本

3.1 开发步骤:从0到1创建新脚本

步骤1:创建脚本文件

在项目根目录新建jd_my_task.ts文件,继承基础类JDHelloWorld:

import { User, JDHelloWorld } from "./TS_JDHelloWorld"; class MyTask extends JDHelloWorld { constructor() { super("京东自定义任务"); // 任务名称 } async run() { // 任务逻辑实现 console.log("开始执行自定义任务..."); } } new MyTask().run();
步骤2:实现核心功能

以"领取京东首页红包"为例,添加API调用逻辑:

async run() { for (let user of this.users) { this.user = user; console.log(`【京东账号${this.user.index}】开始领取红包`); // 调用京东红包接口 const res = await this.get("https://api.m.jd.com/client.action", { functionId: "redPacketGet", appid: "wh5", body: JSON.stringify({ activityId: "123456" }) }); if (res.data?.code === 0) { this.logger.info("红包领取成功"); } else { this.logger.error("领取失败:" + res.data?.msg); } } }
步骤3:配置定时任务

在脚本头部添加cron注释,支持定时执行:

/** * cron "0 9 * * *" script-path=jd_my_task.ts,tag=京东自定义任务 */

3.2 调试与测试技巧

本地运行调试
node jd_my_task.ts # 直接执行脚本
关键参数获取
  • Cookie获取:通过浏览器F12开发者工具,在京东网站请求头中复制Cookie
  • 接口参数:使用Charles或Fiddler抓包工具分析京东APP请求,获取functionId和请求体格式

四、高级技巧:提升脚本稳定性

4.1 多账号管理

通过 jdCookie.js 实现多账号配置,在config/cookie.json中添加多个账号Cookie:

[ "pt_key=xxx;pt_pin=account1;", "pt_key=yyy;pt_pin=account2;" ]

4.2 风控规避策略

  • 随机UA:使用 TS_USER_AGENTS.ts 中的随机UA函数
  • 请求间隔:添加随机延迟,避免高频请求触发风控
await this.sleep(random(1000, 3000)); // 随机延迟1-3秒

4.3 错误处理

完善的异常捕获机制:

try { // 核心逻辑 } catch (e) { this.logger.error(`任务执行失败:${e.message}`); // 发送错误通知 await this.sendNotify("京东任务异常", `账号${this.user.index}执行失败`); }

五、常见问题解决

Q1:脚本执行提示"Cookie无效"?

A:检查Cookie是否过期,重新获取京东登录Cookie。建议使用 jd_checkCookie.ts 验证Cookie有效性。

Q2:H5ST签名失败如何处理?

A:确保使用最新版签名算法,可参考 utils/h5st_4.3.js 中的实现,或更新项目依赖。

Q3:如何添加自定义通知渠道?

A:扩展 utils/pushplus.ts 中的通知函数,集成企业微信、钉钉等API。

通过本文的教程,你已经掌握了基于enen项目开发京东自动化脚本的核心技能。无论是日常任务自动化还是个性化功能开发,enen项目都能为你提供强大的支持。开始动手实践,让京东薅羊毛效率提升10倍吧!

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询