Add Anneng (Electron) site: expected-data download + main_router integration

安能站点第一阶段:把应到数据(运单信息)下载流程接入主路由。

- site_anneng.py:用页面级 CDP 驱动「安能全网门户」Electron 应用(Playwright
  connect_over_cdp 被 Electron 浏览器域 CDP 拦截,故走页面级)。完整应到流程:
  菜单导航 → 进站交接单查询 → 设日期查询(“带小数点的 0”为加载完成判据)
  → 逐条交接单双击进运单信息并核对单号 → 导出(选中字段+→箭头转移全部列)
  → 关闭查询 tab → 导出下载页轮询 → 免对话框下载(x-auth+TGC 直连 GET)
  → 合并为 安能-应到货物数据.xlsx。CDP 端口可配;anneng_ready() 供路由就绪轮询。
- main_router.py:以调试模式启动安能(动态空闲端口,避免端口冲突),经 CDP
  判断首页就绪,菜单加 [10] 应到下载,退出时关闭应用;网页站点逻辑不变。
- config.example.yaml:补充 anneng.query_days 与 anneng.app_path 说明。
- docs/安能门户CDP连接指南.md:连接方案、独立 webContents/tab 处理、免对话框下载。
- .gitignore:忽略 Archive/(早期探查脚本归档)。

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Misaka
2026-06-21 19:38:44 +08:00
parent d4a9fb3b4a
commit 9d3d3cbb78
5 changed files with 1476 additions and 24 deletions

View File

@@ -16,7 +16,7 @@ debug:
enabled: false
# 调试模式下要单独启动的网点名称。
# 仅在 enabled: true 时生效。可选值:顺心 / 百世 / 中通 / 韵达。
# 仅在 enabled: true 时生效。可选值:顺心 / 百世 / 中通 / 韵达 / 安能
# 留空或不匹配时将回退为全量模式。
target_site: ""
@@ -55,3 +55,17 @@ yunda:
# 应到 / 实到数据的查询时间范围(单位:天,向前回溯 N 天至今天)。
query_days: 1
# ----------------------------------------------------------------------------
# 安能全网门户Electron 桌面应用,非网页)
# ----------------------------------------------------------------------------
# 与其他站点不同:安能不由 main_router 用浏览器打开,而是以调试模式启动其
# Electron 可执行文件(自动选取一个空闲端口作为 --remote-debugging-port避免端口冲突
# 启动后请在应用内手动登录main_router 会自动轮询判断是否进入主页。
anneng:
# 应到(运单信息)数据的查询时间范围(单位:天,向前回溯 N 天至今天)。
query_days: 1
# 安能 Electron 应用的可执行文件路径。
# 路径含反斜杠/空格/@用单引号包裹即可YAML 单引号串按字面解析)。
app_path: 'D:\SoftWare\SoftWare Installation\@ane-electron-uiapp\安能全网门户.exe'