cognis-digital/pricepulse
GitHub: cognis-digital/pricepulse
一款轻量级的竞品定价与功能变更监控工具,通过快照对比自动检测价格涨跌和套餐功能增减,并在变化时触发提醒。
Stars: 0 | Forks: 0
# pricepulse — 带有差异提醒的竞品定价/功能变更监控工具
[](https://pypi.org/project/cognis-pricepulse/)
[](https://github.com/cognis-digital/pricepulse/actions)
[](LICENSE)
[](https://github.com/cognis-digital)
**监控竞品的定价和功能页面变更,并在价格变动或套餐/功能出现或消失时获取差异提醒。**
*商业智能 — 无需搭建重量级基础设施即可跟踪市场动态。*
## 分步使用指南
1. 从源码**安装** (Python 3.9+):
pip install .
2. 使用 price/feature 提取器**添加**要跟踪的页面 (`NAME:KIND:PATTERN`):
pricepulse add https://example.com/pricing --price "pro:regex:[0-9]+/mo" --label "Competitor Pro"
3. **快照**所有跟踪的页面 (抓取 + 提取 + 存储):
pricepulse snapshot
4. 将页面与前一次快照进行**差异对比**,并读取变更集:
pricepulse diff https://example.com/pricing --format json
5. **自动化** — 循环执行间隔任务,并将变更 POST 到 webhook (或在 CI 中执行单次 `--once` 传递):
pricepulse watch --interval 300 --webhook https://hooks.example.com/pricepulse
此外还有:`pricepulse list` 和 `pricepulse mcp` (MCP stdio 服务器)。
## 为什么需要
定价页面是公开的,通常悄无声息地变动,但影响却极其重大。`pricepulse` 会跟踪
您关心的 URL,使用无依赖的提取器提取价格和套餐/功能列表,
将它们快照存储到本地 SQLite 中,并确切地告诉您自上次以来发生了什么变化 — 价格的上涨/下跌及差异值、套餐的
增加/移除、功能的增加/移除。它是单一用途、可脚本化、
CI 友好、可自托管的,并且**仅使用标准库** (无需 pip 安装)。
在任何变更时触发 webhook,或者通过 MCP 将其暴露给 agent。
## 领域
**主要领域:** Cyber & Security · **JTF MERIDIAN 部门:** NULLBYTE · SPECTER
**主题:** `cognis` `security` `infosec` `cybersecurity` `blue-team`
**Cognis Neural Suite** 的一部分 — 包含 300 多个开源工具,组织在 JTF MERIDIAN 指挥结构下的 12 个领域中。请参阅 [GitHub 上的 suite](https://github.com/cognis-digital) 和 [jtf-meridian](https://github.com/cognis-digital/jtf-meridian) 以了解这些部分是如何组合在一起的。
## 安装
```
pip install cognis-pricepulse
# 或者,从这个 repo:
pip install -e ".[dev]"
```
无需任何依赖即可运行 — Python 3.10+ 就足够了。
## 快速开始
```
pricepulse --version
# 1. 追踪一个页面 + extractors(价格 + 特性,regex 或 css-ish)
pricepulse add https://acme.example/pricing \
--label "Acme pricing" \
--price "pro:css-ish:.plan-pro .price" \
--feature "plans:css-ish:.plan-name"
# 2. 对其进行 snapshot(通过 urllib 获取,或使用 --html 指定本地文件)
pricepulse snapshot https://acme.example/pricing
# 3. 查看与上一个 snapshot 相比的变化
pricepulse diff https://acme.example/pricing
pricepulse diff https://acme.example/pricing --format json --webhook "$SLACK_WEBHOOK_URL"
# 4. 或者只是在一定的 interval 内 watch 并在发生变化时 alert
pricepulse watch https://acme.example/pricing --interval 3600 --webhook "$SLACK_WEBHOOK_URL"
# 将其暴露为一个 MCP server(Cognis.Studio / Claude Desktop / Cursor)
pricepulse mcp
```
## 子命令
| 命令 | 功能描述 |
|------------|-------------------------------------------------------------------------|
| `add` | 注册一个页面 + 命名的 price/feature 提取器。 |
| `snapshot` | 抓取 (或读取 `--html`),提取每个字段,持久化到存储中。 |
| `diff` | 比较最近的两次快照;分类变更;可选的 webhook。 |
| `watch` | 每 `--interval` 秒循环执行 `snapshot`+`diff`,发生变更时触发 webhook。 |
| `list` | 列出跟踪的页面及其提取器。 |
| `mcp` | 作为 stdio JSON-RPC MCP 服务器运行 (`extract`, `diff_html` 工具)。 |
## 提取器
每个字段都有一个 **kind** (`price` 或 `feature`) 以及一个 **extractor**:
* **regex** — 一个 Python regex;将获取第一个捕获组 (或整个匹配项)。
价格会被解析为浮点数,例如 `r"\$(\d+)"`。
* **css-ish** — 基于 stdlib HTML 解析器的轻量级选择器。支持
`tag`、`.class`、`#id`、`tag.class`,以及后代组合器
(`.plan-pro .price` = 一个位于 `.plan-pro` 内部的 `.price`)。
CLI 上的字段规范使用 `NAME:EXTRACTORKIND:PATTERN`,例如
`--price "pro:css-ish:.plan-pro .price"`。
Price 字段的差异表现为 `price_up` / `price_down` (带有 `delta` 和 `pct`)、
`price_set`、`price_cleared`。Feature 字段的差异表现为 `feature_added` /
`feature_removed`。
## 内置演示
这是一个完全离线的演示,基于两个内置的 HTML 快照展示检测到的价格
变更。请参阅 [`demos/01-basic/SCENARIO.md`](demos/01-basic/SCENARIO.md)。
```
bash demos/01-basic/run.sh
```
它检测到:Pro 价格 **$49 → $59 (+20.41%)**,新增了一个 $99 的 **Team** 套餐,并且
Pro 套餐中新增了 **Audit logs** 功能。
## 存储
快照持久化到单个 SQLite 文件中 (默认为 `pricepulse.db`,可通过
`--store PATH` 覆盖)。其 schema 非常小巧:`pages`、`fields`、`snapshots`。
## 优雅的离线处理
抓取失败永远不会导致运行崩溃:`snapshot` 会按页面报告错误并
以非零状态退出;`watch` 会记录错误并继续轮询其他页面。
## 互操作性
`pricepulse` 可与 300 多个工具组成的 Cognis suite 组合使用 — JSON 输入/输出和共享的
OpenAI 兼容 `/v1` 主干。请参阅 **[INTEROP.md](INTEROP.md)** 了解
suite 地图、组合模式和参考技术栈。
## 集成
通过 [`cognis-connect`](https://github.com/cognis-digital/cognis-connect) 将 `pricepulse` 的发现转发至 STIX/MISP/Sigma/Splunk/Elastic/Slack/webhook。请参阅 **[INTEGRATIONS.md](INTEGRATIONS.md)**。
## 许可证
Cognis Open Collaboration License (COCL) v1.0 — 详见 [LICENSE](LICENSE)。
标签:Python, 价格监控, 商业智能, 差异比较, 数据提取, 无后门, 竞争对手监控, 逆向工具