下载全部 Octopus Energy 账单
因为近期从 MSE: The Big Energy Switch II 了解到更便宜的电费和瓦斯费的计划,决定从 Octopus Energy 转到新的供应商。
希望存档旧的账单信息方便以后查阅,但是 Octopus Energy 的网站没有提供批量下载账单的功能。于是写了个小脚本来自动化这个过程。
项目: octobill_downloader
项目可以在 GitHub 上获取:jixunmoe/octobill_downloader。
使用方法很简单:
- 获取账户凭证(JWT token)
- 运行脚本下载账单
获取账户凭证
首先登录 Octopus Energy 网站:https://octopus.energy/dashboard/
打开浏览器的开发者工具(按下 F12 打开),切换到 Application 标签页 → Local Storage → https://octopus.energy,找到名为 token 的项,复制它的值(通常为 eyJhbG... 开头的字符串):

开发者工具截图
配置运行环境
确保你已经安装了 Python 3 以及 uv。
如果还没有安装 uv,可以查阅 uv 官方文档。
运行下述指令来初始化环境:
uv venv
uv sync
运行下载脚本
你可以带上 -h 参数来查看帮助信息:
$ uv run python download_bills.py -h
usage: download_bills.py [-h] [-O OUTPUT_DIR] [-t TOKEN]
options:
-h, --help show this help message and exit
-O, --output-dir OUTPUT_DIR
Directory to save downloaded bills to
-t, --token TOKEN Bearer token to use for authentication
例如:
uv run python download_bills.py -t eyJhbG... -O ./bills
脚本会自动创建输出目录(如果不存在的话),并将所有账单下载到该目录下。
碎碎念
全都是 GraphQL API,目前还没在自己的项目用过。感觉在服务端要做好安全检查应该不太容易。
还好接口本身很简单,一个 POST 打天下 - 一种间接执行 SQL 的感觉。
题外话:做好后发现有公开的 API 文档,也就是说我其实不需要自己抓。
