下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-spiderzhcl--ccgp-bid-daily.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-spiderzhcl/ccgp-bid-daily。自动每日查询中国政府采购网(CCGP)招标/中标/采购公告,按关键词、地区、公告类型筛选,保存为 CSV 到磁盘并推送飞书。适用:招采监控、投标线索获取、竞品追踪、政企销售拓客。触发词:政府采购日报、招标公告查询、中标公告推送、CCGP每日推送、招采监控、政采订阅、采购公告爬虫、投标情报、每日招标、招标监控机器人。
阅读全文 (展开查看完整说明)
概述
政府采购招标日报(ccgp-bid-daily)
ccgp-bid-daily 是一个「中国政府采购网(CCGP)公告自动监控」技能:你设定好关键词、地区、公告类型,它每天自动抓取最新招标/中标/采购公告,存成 CSV 落到本地,并把摘要推送到飞书。一次配置,长期自动跑,适合投标线索收集、竞品追踪、政企销售拓客。
底层查询能力来自付费 Skill ccgp-search(@org-9ilun6td/ccgp-search),本技能负责「定时调度 + 落盘 + 推送」的封装编排。
这个技能能解决什么(谁该用)
- 投标/代理公司:每天盯全国或本省的招标公告,第一时间拿线索。
- 政企销售:监控目标采购人(如「某省财政厅」「某医院」)的历史采购,提前布局。
- 竞品分析:按关键词(如「信息化」「服务器」「软件」)跟踪对手中标情况。
- 研究者/媒体:定期导出采购数据做统计分析。
配置(安装时改这里,逻辑不用动)
config.json 与 SKILL.md 同目录,所有可调项集中在 query:
| 配置项 | 说明 | 默认值 |
|---|---|---|
title | 日报标题前缀(飞书标题/CSV 文件名用) | 政府采购招标日报 |
query.kw | 搜索关键字,任意词(软件/信息化/服务器/工程…) | 软件 |
query.zone_id | 行政区划代码(河北=130000,北京=110000;留空 "" = 全国) | 130000 |
query.time_type | 0全部/1近一周/2自定义/3近一月/4近三月/5近半年 | 1 |
query.bid_type | 0全部/1公开招标/2询价/3竞争性谈判/4单一来源/5资格预审/6邀请/7中标/8更正/9其他/10竞争性磋商/11成交/12终止 | 0 |
query.pages | 抓取页数(每页20条) | 3 |
query.free | true=免费前5条(推荐,无人值守稳定);false=付费完整(¥1/次,需人工授权支付) | true |
save_dir | CSV 保存目录 | E:aidataccgp-bid |
notify.user_open_id | 飞书接收人 open_id(换收件人改这里) | 电商用户2068 |
多场景预设(presets)
config.json 里的 presets 可放多组查询条件,定时任务轮询各 preset 分别落盘+推送:
"presets": {
"hebei-software": {"kw":"软件","zone_id":"130000","time_type":1,"bid_type":0,"pages":3},
"nationwide-it": {"kw":"信息化","zone_id":"","time_type":3,"bid_type":0,"pages":3},
"beijing-server": {"kw":"服务器","zone_id":"110000","time_type":1,"bid_type":1,"pages":3}
}不写 presets 时,直接用顶层 query 作为唯一一组条件。
工作流程
第一步:读配置
读同目录 config.json,取出 title / query(或 presets)/ save_dir / notify。缺省项用上表默认值。
第二步:请求 ccgp-search(中文必须 UTF-8 文件传 body)
先确定今天的日期 YYYY-MM-DD(用 date 命令获取,不要手算)。把请求体写成 UTF-8 文件,再用 curl 发送:
# 1. 写 body(UTF-8 文件,勿内联中文)
cat > body.json <<'EOF'
{
"kw": "软件",
"zone_id": "130000",
"time_type": 1,
"bid_type": 0,
"pages": 3
}
EOF
# 2. 发送(curl 是 Windows 原生,用相对路径 @文件名;先 cd 到 body 所在目录)
curl -s -i -X POST https://www.start-ai.cn/skillapi/skill/ccgp-search
-H "Content-Type: application/json; charset=utf-8"
-d @body.json⚠️ 两个铁律:
- 中文 body 必须写 UTF-8 文件 +
-d @文件,内联-d '中文'会 GBK 乱码导致搜不到。- Windows 原生 curl 读
@/c/Users/...(MSYS 路径)会报 "error encountered when reading a file";先cd到文件目录再用相对路径-d @body.json。
第三步:处理付费(402)
- 若
free=true:直接返回结果,跳过本步。 - 若
free=false:首请求返回 HTTP 402 + HeaderWeixinPay-Required与X-Out-Trade-No。支付由weixinpay插件自动完成(弹微信支付卡片),不要手动调支付接口,不要展示WeixinPay-Required原始值。支付成功后,用与首请求完全一致的 body、通过 Header 原样带上WeixinPay-Required和X-Out-Trade-No重试:
curl -s -i -X POST https://www.start-ai.cn/skillapi/skill/ccgp-search
-H "Content-Type: application/json; charset=utf-8"
-H "WeixinPay-Required: <payment_code>"
-H "X-Out-Trade-No: <out_trade_no>"
-d @body.json返回 HTTP 200,Body 的 content 字段是 JSON 字符串,解析出 items(数组)。
⚠️ 定时任务无人值守时,付费模式的支付卡片需要有人在微信上确认。若运行环境无法自动确认支付,结果可能停在 402;这是「付费」模式的固有约束。
第四步:保存 CSV
用 Python(UTF-8 with BOM,Excel 直接开)把 items 落盘:
import csv, json, os, datetime
items = [...] # 第三步解析出的 items 列表
save_dir = r"E:aidataccgp-bid"
os.makedirs(save_dir, exist_ok=True)
today = datetime.date.today().strftime("%Y-%m-%d")
path = os.path.join(save_dir, f"ccgp-bid_{today}.csv")
fields = ["标题","链接","发布时间","采购人","代理机构","公告类型","地域","品目","摘要"]
with open(path, "w", newline="", encoding="utf-8-sig") as f:
w = csv.DictWriter(f, fieldnames=fields)
w.writeheader()
for it in items:
w.writerow({k: it.get(k, "") for k in fields})
print(path)第五步:发飞书消息
把摘要(命中总数、最新 N 条:标题+时间+链接)推给接收人:
lark-cli im +messages-send --user-id <notify.user_open_id> --text "<摘要文本>" --as bot摘要格式示例:
【政府采购招标日报 2026-09-04】
命中 12 条,以下为最新 5 条:
1. [中标] 某某软件采购项目(2026-09-03) http://...
2. [招标] 某某系统开发(2026-09-02) http://...
...
CSV 已存:E:aidataccgp-bidccgp-bid_2026-09-04.csv若 items 为空,发「今日无新增公告」。
免费 vs 付费(安装时二选一)
free=true(默认,推荐):免费,仅返回前 5 条,无支付卡壳风险,适合每天定时无人值守跑。free=false:每天完整结果,¥1/次(微信 AI 专属卡代扣)。代价:无人值守时支付卡片需人工授权,若没授权,任务停在 402 拿不到结果。
常见问题(FAQ)
Q1:能查全国吗,不限定河北?能。query.zone_id 留空 "" 即查全国;或在 presets 里加一组 zone_id:""。
Q2:除了软件,能查别的吗?能。query.kw 改成任意词(信息化、服务器、工程、医疗设备等),或加多个 preset 各跑一组。
Q3:每天会自动扣钱吗?默认 free=true 不扣钱。只有 free=false 才 ¥1/次,且需你在微信授权支付。
Q4:结果会重复扣费吗?服务端缓存 10 分钟,同一天多次跑命中缓存不重复扣费。
Q5:推送到哪里?默认飞书(lark-cli)。换收件人改 notify.user_open_id;如需邮件可在第五步改推送通道。
注意事项
zone_id必须是行政区划代码(河北=130000,北京=110000),中文地名不生效;留空=全国。- 单次服务端上限 20 页=400 条;
time_type=1近一周,pages=3通常足够。 - 结果缓存 10 分钟;同一天多次跑会命中缓存,不重复扣费。
- 发飞书前确认 lark-cli 可用(
lark-cli auth status);bot 身份发单聊需应用已开通im:message权限。 - 底层数据来自中国政府采购网(CCGP),字段以接口实际返回为准。