83 lines
2.1 KiB
Markdown
83 lines
2.1 KiB
Markdown
# aliyun-aps-sync
|
|
|
|
用于抓取阿里云伙伴中心里的 `我的客户`、`订单查询`、`账单查询`,并把结果和本地上一次同步结果做增量对比。
|
|
|
|
## 功能
|
|
|
|
- 首次 `login` 用浏览器手动登录,后续复用本地登录态。
|
|
- `sync` 会同步 3 个模块的数据。
|
|
- 同步后会生成:
|
|
- `data/current/*.json` 当前全量
|
|
- `data/history/<dataset>/*.json` 每次快照
|
|
- `data/delta/<dataset>/*.json` 增量变化
|
|
- `data/runs/*.json` 每次任务汇总
|
|
- `schedule` 支持常驻进程方式按 cron 表达式每天自动同步。
|
|
|
|
## 安装
|
|
|
|
```bash
|
|
cd /Users/qiangredhad/aliyun-aps-sync
|
|
npm install
|
|
cp .env.example .env
|
|
```
|
|
|
|
## 配置
|
|
|
|
`.env` 里最重要的时间范围:
|
|
|
|
- `ALIYUN_APS_ORDER_START_DATE`: 订单查询的起始日期,会按月滚动抓取直到今天。
|
|
- `ALIYUN_APS_INCREMENTAL_ORDER_START_DATE`: 订单/订单详情在增量模式下的指定起始日期;留空时仍默认只查昨天。
|
|
- `ALIYUN_APS_BILL_START_MONTH`: 账单查询的起始佣金月份,会按月滚动抓取直到当前月。
|
|
|
|
## 使用
|
|
|
|
1. 首次登录并保存会话
|
|
|
|
```bash
|
|
npm run login
|
|
```
|
|
|
|
2. 手动执行一次同步
|
|
|
|
```bash
|
|
npm run sync
|
|
```
|
|
|
|
仅抓账单:
|
|
|
|
```bash
|
|
npm run bills
|
|
```
|
|
|
|
如果要从最新账单 checkpoint 继续:
|
|
|
|
```bash
|
|
npm run bills -- --resume
|
|
```
|
|
|
|
如果需要在增量模式下让订单和订单详情从指定日期开始补抓,可以配置:
|
|
|
|
```bash
|
|
ALIYUN_APS_INCREMENTAL_ORDER_START_DATE=2026-01-01
|
|
```
|
|
|
|
或临时执行:
|
|
|
|
```bash
|
|
npm run sync -- --incremental-order-start-date=2026-01-01
|
|
```
|
|
|
|
3. 常驻定时同步
|
|
|
|
```bash
|
|
npm run schedule
|
|
```
|
|
|
|
默认 cron 是每天早上 6 点,可在 `.env` 里改 `ALIYUN_APS_CRON`。
|
|
|
|
## 注意
|
|
|
|
- 脚本现在基于页面表格 DOM 抓取,如果阿里云伙伴中心页面结构改版,需要调整 `src/sync.js` 里的表格和筛选器选择逻辑。
|
|
- 订单和账单的日期输入框是通过页面已有日期值自动识别的,所以首次跑之前建议先在页面确认默认筛选存在。
|
|
- 如果登录态过期,重新执行 `npm run login` 即可。
|