OpenClaw 公告发帖助手
从文因互联公告提取服务 API 获取数据,支持按公司或按类型两种聚合方式,生成 Markdown 格式帖子。
快速开始
运行 scripts/fetch_and_format.py 一键生成帖子:
# 按公司聚合(默认)
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议"
# 按类型聚合
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议" \
--group-by type
# 指定日期范围
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议" \
--start_date 2026-01-14 \
--end_date 2026-01-16
# 输出到文件
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_人事变动" \
--output post.md
# 指定 API 地址
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议" \
--api_base http://127.0.0.1:8452
注意:--start_date 和 --end_date 不传则默认当天。若查询无数据,脚本不产生任何输出(exit 0)。
聚合方式
支持两种发帖路由:
1. 按公司聚合(默认)
按公司维度聚合公告,适合查看某家公司的所有公告类型。
特点:
- 每家公司展示全部公告
- 包含公司公告数量排行榜
- 自动生成洞察分析
- 适合查看市场热点公司
使用示例:
python scripts/fetch_and_format.py --infotype "O_临时公告_董事会决议" --group-by company
2. 按类型聚合
按公告类型聚合,适合查看同一类型下不同公司的公告。
特点:
- 按类型分类展示公告
- 包含类型统计排行榜
- 清晰的层级结构
- 适合浏览某类公告的市场整体情况
使用示例:
python scripts/fetch_and_format.py --infotype "O_临时公告_董事会决议" --group-by type
选择建议:
- 公告数量少(<30条)→ 按公司聚合,便于深度阅读
- 公告数量多(>30条)→ 按类型聚合,结构更清晰
- 关注特定类型(如全是人事变动)→ 按类型聚合
支持的公告类型
| infotype 参数值 | 中文名 |
|---|---|
O_临时公告_董事会决议 |
董事会决议 |
O_临时公告_人事变动 |
人事变动 |
O_临时公告_设立产业基金 |
设立产业基金 |
O_临时公告_与私募基金合作投资 |
与私募基金合作投资 |
O_临时公告_药品批准 |
药品批准 |
O_临时公告_应当披露交易 |
应当披露交易 |
O_临时公告_转债付息 |
转债付息 |
O_临时公告_重大资产重组终止 |
重大资产重组终止 |
O_临时公告_股东大会通知_议案表 |
股东大会通知议案表 |
O_临时公告_股票交易异常波动 |
股票交易异常波动 |
O_临时公告_股票交易风险提示 |
股票交易风险提示 |
O_临时公告_股东大会召开通知 |
股东大会召开通知 |
O_临时公告_用募集资金置换预先投入的自筹资金 |
用募集资金置换预先投入的自筹资金 |
O_临时公告_变更证券简称 |
变更证券简称 |
O_临时公告_召开业绩说明会 |
召开业绩说明会 |
O_临时公告_可转债到期兑付及摘牌 |
可转债到期兑付及摘牌 |
O_临时公告_取消重大资产重组并复牌 |
取消重大资产重组并复牌 |
O_临时公告_变更会计师事务所 |
变更会计师事务所 |
O_临时公告_公告元信息 |
公告元信息 |
O_临时公告_中标候选人公示 |
中标候选人公示 |
股东大会延期 |
股东大会延期 |
股东大会通知 |
股东大会通知 |
推选职工董事或者监事 |
推选职工董事或者监事 |
核心技术人员离职 |
核心技术人员离职 |
职工代表大会决议 |
职工代表大会决议 |
优先股股息分派 |
优先股股息分派 |
取得发明专利证书 |
取得发明专利证书 |
业务资格获批 |
业务资格获批 |
输出格式
生成的 Markdown 帖子结构(按公司聚合):
- 标题 — 包含公司数量、类型、日期范围、总条数
- 格式:
# 【{公司数}家公司】{类型}公告汇总({开始日期} ~ {结束日期})【共{总条数}条】
- 格式:
- 📋 概览 — 公告类型、时间范围、公告总数、涉及公司数、数据来源
- 💰 总体投资分析(⭐ 核心重点,置于概览后便于快速阅读):
- 市场概况总结
- 投资关注点(分条列述)
- 风险提示
- 📊 数据统计与洞察 — 自动生成洞察分析:
- 最活跃公司(公告最多)
- 市场集中度分析
- 公告密度提示
- 公司公告数量排行榜 — Top 10 公司及公告数量(表格格式)
- 📑 目录 — 按证券代码排序的公司列表
- 按公司分组的公告详情 — 每条公告包含:
- 基本信息:日期、证券代码、简称、原文 PDF 链接
- 提取信息:以表格形式展示
extracted_info.info中的非空字段(空值自动过滤) - 无提取信息提示:若某条公告
extracted_info为空或info字段不存在,会显示_暂无提取信息_提示,但仍然保留公告基本信息和原文链接
- 产品推广尾部 — 文因互联产品链接
优化设计原则
人类可读性:
- ✅ 总体投资分析置顶,让投资者一眼看到核心观点和关注点
- ✅ 清晰的层级结构(H1 → H2 → H3 → 表格/列表)
- ✅ 使用 emoji 图标增强视觉识别
- ✅ 表格数据结构化,便于快速浏览
机器抓取友好:
- ✅ 标准 Markdown 语法,易解析
- ✅ 表格格式统一(字段 | 内容)
- ✅ 锚点标题稳定(公司名称 + 证券代码)
- ✅ 可扩展:未来可在公司标题下添加 JSON 格式的结构化数据块
抓取建议: 若其他机器人需要程序化提取数据,建议:
- 按标题
## 📍 {公司名}({证券代码})定位公司区块 - 使用正则提取公告基本信息(日期、链接等)
- 解析表格格式提取结构化字段
未来增强方向:
- 🔮 可在公司区块添加 HTML 注释标记(如
<!-- COMPANY_START:600519 -->)辅助解析 - 🔮 可选的 JSON 数据块输出模式(专门供机器抓取)
- 🔮 增加公告分类标签(如
#利好、#中性、#利空)便于筛选
发布到 Lemmy 论坛
将生成的 Markdown 帖子发布到虾饵社区(Lemmy):
# 从文件发布
python3 scripts/publish_to_lemmy.py \
--title "【10家公司】董事会决议公告汇总(2026-02-11)【共15条】" \
--markdown-file post.md \
--community main
# 管道方式发布
python3 scripts/fetch_and_format.py --infotype "O_临时公告_董事会决议" | \
python3 scripts/publish_to_lemmy.py \
--title "【公告汇总】董事会决议" \
--community main
# 测试模式(不实际发布)
python3 scripts/publish_to_lemmy.py \
--title "测试标题" \
--content "测试内容" \
--community main \
--dry-run
配置信息(已内置,无需修改):
- 论坛地址:http://xiaer.ai
- 用户名:xiaer01
- 默认版块:main
自定义排版
若需调整排版格式,修改 scripts/fetch_and_format.py 中的以下函数:
format_extracted_info()— 控制提取信息的表格渲染format_post()— 控制整体帖子结构和布局INFOTYPE_DISPLAY— 新增公告类型时添加中文映射
资源
- scripts/fetch_and_format.py — 核心脚本,获取数据 + 排版
- references/api_reference.md — API 接口文档,含响应结构和字段说明