青岛「城运e生活」公交实时接口:逆向文档+纯标准库 Python 客户端(MIT-0)
Find a file
2026-08-31 17:14:07 +08:00
samples 新增:公共汽车站点不存在的错误响应示例 2026-08-31 16:58:47 +08:00
.gitignore 青岛畅由公交实时接口:逆向文档+纯标准库客户端 2026-07-23 15:54:37 +08:00
_check_api.py 新增:公共汽车站点不存在的错误响应示例 2026-08-31 16:58:47 +08:00
API.md 文档:更新接口数量及新增站牌二维码解析接口说明 2026-08-31 17:08:32 +08:00
cyelife_bus.py 文档:更新接口特征描述,新增站牌二维码解析接口 2026-08-31 17:14:07 +08:00
LICENSE 更新LICENSE 2026-07-23 12:57:40 +00:00
README.md 文档:更新接口数量及新增站牌二维码解析接口说明 2026-08-31 17:08:32 +08:00

cyelife-api

青岛「城运e生活」公交实时接口整理。数据源为其 H5 https://publicbus-uniapp-out.cyelife.comuniapp 编译产物)。

结论速览

  • 接口基址 https://api.cyelife.com/api,读接口无需登录态即可访问(Authorization 传空字符串即可)。
  • POST + Content-Type: application/json,响应统一 {"code":200,"message":"操作成功","data":...}
  • 仅覆盖青岛市;坐标为 GCJ-02高德火星坐标
  • 共 16 个接口12 个只读(已 curl 实测;stationCode 仅实测到错误语义成功响应未捕获4 个收藏/关注类写接口。
  • 2026-08-31 复测:新增站牌二维码解析接口与 2 个响应字段,收藏类接口未登录行为有变。详见 API.md 末尾「变更记录」。

目录

文件 内容
API.md 16 个接口的完整文档:参数、响应字段、实测踩坑点
cyelife_bus.py 纯标准库 Python 客户端(无依赖),封装全部读接口
samples/ 6 份实测原始响应样例

快速开始

python3 cyelife_bus.py                 # 端到端演示25 路,搜索→详情→定位→实时到站)
python3 cyelife_bus.py search 25       # 搜索
python3 cyelife_bus.py live <routeId> <stationId>   # 查某线某站实时到站

核心链路4 步查实时到站)

① search(keyword)                      → routeList[].routeId
② route_detail(routeId, runDirection)  → stationList[].stationId
③ nearest_station(routeId, lng, lat)   → 站位次(取 stationList[n-1]
④ bus_schedule(routeId, stationId)     → busScheduleList[](实时到站车辆)

三个必看的坑

  1. runDirection 请求参数是 0/1,不是 1/21=上行 0=下行,传 2 报「线路异常」);但响应里 busSchedule/pathPlan 回显的是 1/2 另一套编码。
  2. busSchedule/detailisReturnBusHistoryGps 必填,省略会 HTTP 500批量查时任一 ID 无效会让整个请求 500。
  3. searchstationList 项站点 ID 字段叫 routeStationId(不是 stationId);收藏态字段服务端拼成了 fallowed,但提交关注时又叫 followed

声明

仅用于学习与个人公交查询。所有请求均以空 Authorization 发起;写接口(收藏/关注)未做真实提交。请合理控制请求频率。

已知样例 ID青岛

25 路 routeId 651606141628974743
市政府山东路25路第1站 651606141628974744
参考坐标(市政府, GCJ-02 120.382665, 36.066938