一个功能强大的 Chiphell 论坛二手交易区监控工具,基于 Python 实现,集成了关键词匹配、多机器人钉钉通知、Web 管理界面、LLM 内容分析等高级功能。
- 🚀 实时监控: 准实时监控 Chiphell 二手交易区的新帖子。
- 🌐 Web 管理界面: 提供图形化界面,轻松管理机器人、用户、关键词和系统配置,支持密码保护和安全验证。
- 🤖 多机器人管理: 支持配置多个钉钉机器人,并将用户和关键词分配给特定机器人。
- 🎯 高级关键词匹配:
- 为不同用户设置独立的关键词。
- 支持设置“全局”机器人,接收所有新帖通知。
- 支持为用户设置“总是@”模式,无论是否匹配关键词都会收到通知。
- 🧠 LLM 智能分析: (可选) 对接大语言模型(如 OpenAI、Gemini 等),自动从帖子内容中提取商品名称、价格等关键信息。
- 🔄 智能代理池: 支持对接代理池 API,有效规避访问限制。
- 🔔 灵活的通知:
- 批量合并通知,避免消息轰炸。
- 支持对指定用户进行
@提醒。 - 用户订阅到期前自动发送提醒。
- 🗃️ 数据持久化: 使用 SQLite 存储已处理的帖子,防止重复通知。
- 🔐 安全可靠: 支持登录密码、登录防爆破、Cloudflare Turnstile 人机验证。
- 🐳 Docker 支持: 提供
docker-compose配置,实现一键部署。
最简单、最推荐的部署方式。
-
克隆仓库
git clone https://github.com/langchou/informer-py.git cd informer-py -
创建并编辑配置
# 复制配置文件模板 cp data/config_example.yaml data/config.yaml # 根据下方“配置说明”编辑配置文件 nano data/config.yaml
-
启动服务
docker-compose up -d
-
访问 Web 界面 服务启动后,在浏览器中打开
http://<你的服务器IP>:5000即可访问 Web 管理界面。
# 查看实时日志
docker logs -f informer-py-app-1
# 停止服务
docker-compose down
# 更新镜像并重启
docker-compose pull
docker-compose up -d --force-recreate
# 重启服务
docker-compose restart-
克隆仓库
git clone https://github.com/langchou/informer-py.git cd informer-py -
安装依赖 建议使用
uv或pip安装。# 使用 uv uv pip install -r requirements.txt # 或者使用 pip pip install -r requirements.txt
-
创建并编辑配置
mkdir -p data cp data/config_example.yaml data/config.yaml nano data/config.yaml
-
启动程序
python -m informer.main
程序将同时启动后台监控和 Web 服务。访问
http://127.0.0.1:5000。
核心配置文件为 data/config.yaml。以下是一个完整的配置示例:
# Web界面密码,留空表示无需密码
web_password: "your_strong_password"
# Cloudflare Turnstile 人机验证 (可选)
turnstile:
enabled: false
site_key: "your_site_key"
secret_key: "your_secret_key"
# 日志配置
log_config:
file: "logs/app.log"
max_size: 10
max_backups: 5
max_age: 30
compress: true
level: "INFO"
# 钉钉机器人配置 (核心)
dingtalk:
robots:
- name: "主力监控机器人"
token: "your_dingtalk_token_1"
secret: "your_dingtalk_secret_1"
enabled: true # 是否启用此机器人
receive_all: false # 是否接收所有新帖,无论有无关键词匹配
users:
"13800138000": # 用户手机号
keywords: ["4090", "3080ti", "显卡"] # 关键词列表
always_at: false # 无论是否匹配关键词,都@此用户
is_permanent: true # 是否为永久用户
expire_date: "" # 到期日期,格式 YYYY-MM-DD
"13900139000":
keywords: ["NUC", "ITX"]
always_at: true
is_permanent: false
expire_date: "2025-12-31"
- name: "全局通知机器人"
token: "your_dingtalk_token_2"
secret: "your_dingtalk_secret_2"
enabled: true
receive_all: true # 此机器人将接收所有新帖
users: {}
# 代理池API,留空表示不使用
proxy_pool_api: ""
# Chiphell 网站的 Cookies
cookies: "your_cookies_string"
# 监控循环的等待时间范围(秒)
wait_time_range:
min: 30
max: 60
# LLM 分析器配置 (可选)
llm_config:
enabled: false # 是否启用LLM分析
provider: "openai" # 支持 openai, moonshot, gemini 等
model: "gpt-4-turbo" # 模型名称
api_key: "sk-your_openai_api_key"
base_url: "https://api.openai.com/v1" # 可选,用于代理informer-py/
├── data/
│ └── config_example.yaml # 配置模板
├── informer/ # 主程序包
│ ├── __init__.py
│ ├── config.py # 配置加载与数据模型
│ ├── database.py # 数据库操作 (SQLite)
│ ├── expiration_manager.py # 用户到期管理
│ ├── fetcher.py # 网页抓取与解析
│ ├── llm_analyzer.py # LLM 内容分析器
│ ├── logger.py # 日志配置
│ ├── main.py # 主程序入口 (Flask Web App)
│ ├── monitor.py # 核心监控器
│ ├── notifier.py # 钉钉通知管理器
│ └── proxy_manager.py # 代理管理器
├── tests/ # 测试目录
├── web/ # Web 界面文件
│ ├── static/
│ └── templates/
├── .gitignore
├── docker-compose.yml # Docker Compose 配置
├── Dockerfile
├── pyproject.toml # 项目元数据与依赖
├── README.md # 本文档
└── requirements.txt # 依赖列表 (用于 pip)
- Cookie 有效期: Chiphell 的 Cookie 有一定的有效期,失效后会导致抓取失败。请定期通过浏览器获取最新的 Cookie 并更新到配置中。
- 代理使用: 仅在访问受限时启用代理。请确保你的代理池服务稳定可靠。
- 安全性: 如果将 Web 界面暴露在公网,请务必设置一个强壮的
web_password。
本工具仅用于学习和技术研究目的,请勿用于任何非法用途。所有因使用本工具而产生的任何后果,由使用者自行承担。