Files
gungun88 ca102a3398 feat: VPS 优惠聚合雷达(LET + LowEndBox + 回帖库存判定)
数据源
- LowEndTalk Offers RSS(含完整正文)
- LowEndBox RSS(按 category + 正文规格密度过滤非优惠文章)
- 跨源去重(厂商+价格+配置指纹;数据不足时拒绝合并)

抽取内核(确定性正则,无 LLM)
- 规格/价格/折扣/活动性质/地点/CPU 型号
- 拍平 HTML 表格重建(按列序位置推断,解决裸容量无语义问题)
- 库存判定:商家回帖表态 > 帖文关键词 > 用户提及(弱证据)
- 语境校验:疑问句/否定句/非库存对象/促销资格四类误判防线
- 末页优先抓取回帖(实测商家表态集中在回帖流 75%-100% 位置)

工程化
- 包结构分工明确,配置支持环境变量(可绑自有域名)
- 124 个 pytest 用例;BERO 十周年帖为黄金样本
- GitHub Actions 每 6 小时抓取 + 定时提交 + 可选 rsync 部署
- 两种部署方案(Actions+自有服务器 / 纯服务器 cron),均含
  「记录数为 0 则拒绝发布」安全网
- legacy/ 保留重构前脚本,供回归比对(19 字段零回归差异)

零运行时依赖(仅 Python 标准库);产物为纯静态文件。
2026-10-16 06:10:15 +08:00

17 lines
644 B
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""letdeals — LowEndTalk / LowEndBox VPS 优惠聚合工具。
模块划分(参考 hosting-deals-tracker 的工程结构):
config 运行配置(路径、阈值、站点与域名)
http 带重试的 HTTP 抓取
textutil HTML 清洗、单位换算、表格重建
extract 字段抽取(规格/价格/折扣/活动性质/地点)
replies 回帖抓取与库存表态判定
sources 数据源(LET Offers RSS / LowEndBox RSS)
pipeline 编排:采集 → 抽取 → 记录
render 渲染:Markdown + 静态站
cli 命令行入口
"""
__version__ = "0.3.0"