查询CCF近期学术会议、认证竞赛及活动日程;支持基于研究领域或兴趣的个性化推荐;自动区分活动状态(报名中、即将开始、已结束);为已结束活动提供数字图书馆视频和讲稿检索。
获取中国计算机学会(CCF)近期学术会议、认证考试、活动日程等信息。
个性化推荐:如果用户提供了兴趣偏好(如研究方向、技术领域等),根据用户兴趣从所有活动中筛选并推荐相关活动。
主要API端点: https://conf.ccf.org.cn/conf/v2/index/meeting/list.do
请求方法:POST
请求体格式: json
{
"pageNo": 1,
"pageSize": 50,
"signupTimeState": "0",
"sortType": "0"
}
查找活动结束时间在一个月内的活动、查找未来三个月内举办的活动
从API返回的会议数据中,每个会议记录包含:
会议详情页面URL生成优先级:
会议类型URL格式CNCChttps://cncc[年份].ccf.org.cnYEF(青年精英大会)https://yef[年份].ccf.org.cnADL(学科前沿讲习班)https://ccf.org.cn/ADL[编号]NCCA(计算机应用大会)https://ccf.org.cn/ncca[年份]
如果用户提供了兴趣偏好,先收集并记录:
bash
# 基础查询(无需用户输入)
curl -s -X POST "https://conf.ccf.org.cn/conf/v2/index/meeting/list.do" \
-H "Content-Type: application/json" \
-d '{"pageNo":1,"pageSize":50,"signupTimeState":"0","sortType":"0"}'
从返回的JSON中提取 data.records 数组,每个记录包含:
根据上述优先级规则生成每个会议的详情页面URL。
判断活动状态的逻辑:
当用户想查询已结束活动的资源(视频、PPT、讲稿、专辑等)时使用。
数字图书馆前端页面是用户看到的搜索界面,但 实际数据通过后端API返回JSON。
不要将页面URL当成API来调用。例如 https://dl.ccf.org.cn/video/videoIndex.html?searWord=xxx 是用户看到的视频搜索 页面,它内部调用的是 /video/getVideoList 这个 后端API。
/V2/toSearchList.html)#这是最常用的搜索入口,返回视频/讲稿/期刊/专辑等所有类型的聚合结果。
searchList.dobash
# GET 请求,参数需 URL 编码
curl -G -sL "https://dl.ccf.org.cn/searchList.do" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
-H "Referer: https://dl.ccf.org.cn/V2/toSearchList.html" \
--data-urlencode "page=1" \
--data-urlencode "classen=-1" \
--data-urlencode "searchText=大模型" \
--data-urlencode "searchText2=" \
--data-urlencode "sort=score desc" \
--data-urlencode "pageNumber=30"
参数说明:
参数类型说明pageint页码,从1开始classenint分类,-1=全部,其他值对应具体分类searchTextstring搜索关键词(需URL编码)searchText2string分面筛选条件(Solr语法,可选)sortstring排序: score desc(相关度)/ date desc(时间)pageNumberint每页条数,默认30
返回结构: dataRole[0]["search"]["data"] 包含结果数组, dataRole[0]["search"]["count"] 为总数。
每条结果包含: id, title, classEn(类型: audio_video/ ppt/ cccf/ picture/ qkwz 等), op_author, date, cover, view_count 等。
facetedStatistics.dobash
# POST 请求,获取左侧筛选栏的分类统计
curl -s -X POST "https://dl.ccf.org.cn/facetedStatistics.do" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
-d "classen=-1" \
--data-urlencode "searchText=大模型" \
-d "searchText2="
接口方法URL说明热词推荐POSThttps://dl.ccf.org.cn/V2/getHotWords获取周期内热门检索词专辑搜索POSThttps://dl.ccf.org.cn/albumList/searchAlbum搜索专辑( searchword, pageNum, pageSize)
页面地址: https://dl.ccf.org.cn/video/videoIndex.html(用户端)
后端API: POST /video/getVideoList(程序调用)
bash
curl -s -X POST "https://dl.ccf.org.cn/video/getVideoList" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
-d "pageNum=1" \
-d "pageSize=16" \
--data-urlencode "searchTerm=大模型" \
-d "sortRule=date" \
-d "dataYear=" \
-d "seriesText="
参数说明:
参数说明pageNum页码pageSize每页条数(默认16)searchTerm搜索关键词sortRule排序: date / view_countdataYear年份筛选(如 2025)seriesText系列筛选
筛选条件接口: POST /video/getConditions(无参数,返回 dateYears 年份列表等)
页面地址: https://dl.ccf.org.cn/ppt/pptIndex.html(用户端)
后端API: POST /ppt/getPPTList(程序调用)
bash
curl -s -X POST "https://dl.ccf.org.cn/ppt/getPPTList" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
-d "pageNum=1" \
-d "pageSize=16" \
--data-urlencode "searchTerm=大模型" \
-d "sortRule=date"
参数同视频接口( pageNum, pageSize, searchTerm, sortRule, dataYear, seriesText)。
筛选条件接口: POST /ppt/getConditions
页面地址:
https://dl.ccf.org.cn/albumList/albumSecondary.html?selectType=hyhttps://dl.ccf.org.cn/albumList/albumSecondary.html?selectType=zt后端API(均为 GET,RESTful 路径参数):
接口URL模式会议专辑列表GET /albumList/getMeetingAlbums/{year}/{series}/{keyword}/{sort}/{page}会议专辑筛选条件GET /albumList/getMeetingAlbumConditions关键词专辑GET /albumList/getKeyWordsAlbumList/{keyword}/{page}/{sort}作者专辑GET /albumList/getAuthorAlbumList/{keyword}/{page}/{sort}专题专辑GET /albumList/getSpecialAlbumList/{keyword}/{page}/{sort}bash
# 会议专辑搜索示例
curl -s "https://dl.ccf.org.cn/albumList/getMeetingAlbums/0/0/大模型/date/1"
# 关键词专辑搜索
curl -s "https://dl.ccf.org.cn/albumList/getKeyWordsAlbumList/大模型/1/date"
注意: 专辑接口路径中的中文关键词需 URL 编码。 0 表示全部(不筛选年份/系列)。
类型中文名用户页面地址(用户端)后端API(程序调用)🔍 统一搜索全部/V2/toSearchList.html?searchText=关键词``GET /searchList.do📹 视频视频/video/videoIndex.html``POST /video/getVideoList📝 讲稿讲稿/PPT/ppt/pptIndex.html``POST /ppt/getPPTList📚 会议专辑会议专辑/albumList/albumSecondary.html?selectType=hy``GET /albumList/getMeetingAlbums/...📂 专题专辑专辑/albumList/albumSecondary.html?selectType=zt``GET /albumList/getKeyWordsAlbumList/...
优先使用 searchList.do(统一搜索) — 一次查询即可获取所有类型的结果,通过 classEn 字段区分资源类型。
当用户明确只需要某种类型(如"只看视频"或"只看讲稿")时,再使用对应的专用API( /video/getVideoList、 /ppt/getPPTList 等)。
安全提示: 所有用户输入的关键词在拼接到URL前必须URL编码,避免注入风险。
【强制要求】必须严格按照以下格式输出,禁止输出无格式的列表或长文本!
活动日期与当前日期比较状态必须输出的列活动在当前日期之后,且在报名期内🟢 报名中日期、活动名称、地点、报名截止、会议地址活动在当前日期之后,报名尚未开始🔵 即将开始日期、活动名称、地点、状态活动在当前日期之前已结束⚪ 已结束日期、活动名称、地点、视频链接、讲稿链接
如果用户提供了兴趣偏好,在输出开头增加「为你推荐」板块:
markdown
# CCF 近期活动概览
**查询日期:2026-05-06**
## 🎯为你推荐
> 根据你的兴趣偏好(XXX),为你筛选了以下活动:
| 日期 | 活动名称 | 地点 | 匹配原因 | 会议地址 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | 匹配"人工智能"领域 | [会议地址](https://ccf.org.cn/shortUrl) |
markdown
# CCF 近期活动概览
**查询日期:2026-05-06**
## 🎯为你推荐
> 根据你的兴趣偏好(XXX),为你筛选了以下活动:
| 日期 | 活动名称 | 地点 | 匹配原因 | 会议地址 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | 匹配"XXX" | [会议地址](https://ccf.org.cn/shortUrl) |
## 🟢 正在报名中
| 日期 | 活动名称 | 地点 | 报名截止 | 会议地址 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | 2026-XX-XX | [会议地址](https://ccf.org.cn/shortUrl) |
## 🔵 即将举办(未开始报名)
| 日期 | 活动名称 | 地点 | 状态 |
|------|----------|------|------|
| 2026-XX-XX | 活动名称 | 地点 | 即将开始 |
## ⚪ 已结束
| 日期 | 活动名称 | 地点 | 视频回顾 | 讲稿下载 |
|------|----------|------|----------|----------|
| 2026-XX-XX | 活动名称 | 地点 | [查看视频](https://dl.ccf.org.cn/video/videoIndex.html?searWord=关键词) | [下载讲稿](https://dl.ccf.org.cn/ppt/pptIndex.html?searWord=关键词) |
当用户提供兴趣偏好时,必须执行:
活动关键词CCDE数字经济、AI+场景、产业数字化FCES计算机教育、教育改革、教学创新CCDM数据挖掘、机器学习、知识发现WISA信息系统、大数据、知识图谱NLPCC自然语言处理、中文计算、LLMYEF青年科技、创新创业、前沿技术CNCC计算机大会、旗舰会议、综合ADL学科前沿、讲习班、培训GESP编程认证、青少年、等级考试CCF公益日公益、技术公益、社会责任
类型URLCCF首页https://www.ccf.org.cn活动列表https://www.ccf.org.cn/Activities/Activities/活动日历https://www.ccf.org.cn/ccf/eventcalendar/ch?SiteID=122会议系统(报名)https://conf.ccf.org.cn/conf/show.action?code=indexCCF新闻https://www.ccf.org.cn/Media_list/YEF大会https://yef.ccf.org.cn/CNCChttps://cncc.ccf.org.cnFCEShttps://ccf.org.cn/fces2026
认证缩写全称目标人群官方网站GESPCCF编程能力等级认证青少年编程学习者https://gesp.ccf.org.cnPTACCF编程培训师资认证编程教师/培训师https://pta.ccf.org.cnLMCCCCF大模型能力认证(青少年组/成人组)8-18岁青少年、18岁及以上成年人https://lmcc.ccf.org.cnCSPCCF软件能力认证大学生/专业人士https://www.cspro.org
对于GESP、PTA、LMCC认证,可直接访问其官方网站获取最新信息:
bash
# GESP认证信息
web_fetch --url "https://gesp.ccf.org.cn" --extractMode markdown
# PTA认证信息
web_fetch --url "https://pta.ccf.org.cn" --extractMode markdown
# LMCC认证信息
web_fetch --url "https://lmcc.ccf.org.cn" --extractMode markdown
CSP认证官网(cspro.org)需要特殊处理:
bash
# 使用web_search获取CSP最新通知
web_search --query "CCF CSP 认证考试 报名时间 YYYY"
# 或直接访问CSP官网
web_fetch --url "https://www.cspro.org" --extractMode markdown
当用户询问认证信息时,按以下优先级执行:
markdown
# CCF认证考试报名信息汇总(查询日期:YYYY-MM-DD)
## [认证名称]
**最新考试安排:**
- **第X次认证**:YYYY年MM月DD日
- [具体时间安排]
- **报名时间**:[报名开始时间] - [报名截止时间]
- **费用标准**:[费用详情]
- **报名方式**:
- 官网报名:[官方链接]
- [其他报名方式]
- **参与条件**:[参与要求]
[重复以上结构为每个认证类型]
## 各认证官网链接
| 认证类型 | 官方网站 |
|----------|----------|
| GESP | [https://gesp.ccf.org.cn](https://gesp.ccf.org.cn) |
| PTA | [https://pta.ccf.org.cn](https://pta.ccf.org.cn) |
| LMCC | [https://lmcc.ccf.org.cn](https://lmcc.ccf.org.cn) |
| CSP | [https://www.cspro.org](https://www.cspro.org) |
## ⏰ 近期重要时间节点
- **[认证名称]报名**:[截止日期](还有X天)
- **[认证名称]考试**:[考试日期]
> **温馨提示**:建议考生提前注册账号并熟悉报名流程,部分考点考位有限,建议尽早报名。
竞赛缩写全称目标人群官方网站NOI全国青少年信息学奥林匹克竞赛高中生(19岁以下)https://www.noi.cn/CSP-J/SCCF非专业级软件能力认证小学生(12周岁及以上)/初中生/高中生https://www.noi.cn/CCSPCCF大学生计算机系统与程序设计竞赛在校大学生https://ccsp.ccf.org.cn/
NOI和CSP-J/S竞赛信息主要通过以下渠道获取(按优先级排序):
bash
# CCF官网活动日历(最可靠,包含精确时间)
web_fetch --url "https://www.ccf.org.cn/ccf/eventcalendar/ch?SiteID=122" --extractMode markdown
# 精确搜索CCF官网的NOI通知
web_search --query "site:ccf.org.cn \"NOI 2026\" 报名通知"
# NOI官网新闻(可能需要处理编码问题)
web_search --query "NOI 2026 竞赛时间 青岛"
# CSP-J/S信息
web_search --query "CSP-J/S 2026 非专业级软件能力认证 报名时间"
NOI查询经验总结:
CCSP竞赛信息通过专门的竞赛官网获取:
bash
# CCSP官网信息
web_fetch --url "https://ccsp.ccf.org.cn/" --extractMode markdown
# 搜索CCSP最新通知
web_search --query "CCSP 2026 大学生计算机系统与程序设计竞赛 报名时间"
当用户询问竞赛信息时,按以下优先级执行:
CSP-J(入门级):面向小学生(12周岁及以上)、初中生,适合初次接触编程或竞赛经验较少的学生
CSP-S(提高级):面向初中生、高中生,适合有竞赛经验、希望进一步提升水平的学生
考试安排:
费用标准:第一轮50元,第二轮J组260元/S组480元
markdown
# CCF竞赛报名信息汇总(查询日期:YYYY-MM-DD)
## [竞赛名称]
**最新竞赛安排:**
- **竞赛时间**:YYYY年MM月DD日
- [具体时间安排]
- **报名时间**:[报名开始时间] - [报名截止时间]
- **参赛条件**:[参与要求]
- **报名方式**:
- 官网报名:[官方链接]
- [其他报名方式]
- **费用标准**:[费用详情,如适用]
[重复以上结构为每个竞赛类型]
## 各竞赛官网链接
| 竞赛类型 | 官方网站 |
|----------|----------|
| NOI | [https://www.noi.cn/](https://www.noi.cn/) |
| CSP-J/S | [https://www.noi.cn/](https://www.noi.cn/) |
| CCSP | [https://ccsp.ccf.org.cn/](https://ccsp.ccf.org.cn/) |
## ⏰ 近期重要时间节点
- **[竞赛名称]报名**:[截止日期](还有X天)
- **[竞赛名称]竞赛**:[竞赛日期]
> **温馨提示**:建议参赛者提前准备相关材料,关注官方通知,部分竞赛名额有限,建议尽早报名。
当需要获取 CCF 网页的动态内容(如 JavaScript 渲染的页面)时,按以下流程执行:
决策流程
Rendering diagram...
curl 返回结果处理方式状态码 200,内容长度 > 500 字符✅ 静态页面,直接使用状态码 403 / 401 / 500⚠️ 可能被反爬或服务器错误,尝试 Puppeteer出现页面加载的滚顶条或出现被拦截的信息⚠️ 可能被防火墙拦截,尝试 Puppeteer状态码 200,内容极短(< 500 字符)或为空⚠️ 可能为动态渲染页面,尝试 Puppeteer超时或连接失败⚠️ 网络问题,提示用户后重试
注意:仅在浏览器自动化功能确实需要时才考虑使用 Puppeteer。
scripts/ensure_puppeteer.js 脚本进行环境检测,安装命令由用户手动执行,确保仅安装到当前项目目录,不修改全局 Node/npm 环境puppeteer@24.15.0,输出的安装命令使用固定版本,禁止安装未固定版本scripts/ensure_puppeteer.js 脚本进行环境检测CCF定时任务功能允许用户自动定期获取CCF新闻、活动等信息,支持个性化推荐和智能提醒。
javascript
// 示例:自定义频率和时间的CCF新闻摘要任务
cron.add({
name: "CCF新闻摘要-自定义",
// 根据用户需求设置cron表达式
// 每天9点: "0 9 * * *"
// 每周一10点: "0 10 * * 1"
// 每周三/五8点: "0 8 * * 3,5"
schedule: { kind: "cron", expr: "<用户自定义的cron表达式>", tz: "Asia/Shanghai" },
payload: {
kind: "systemEvent",
text: "⏰ CCF新闻摘要时间到了!请根据用户偏好(研究领域、活动类型、地理位置、可参与时间)查询相关内容..."
},
sessionTarget: "main"
})
// 示例:自定义认证/竞赛关注范围
cron.add({
name: "CCF认证竞赛提醒-自定义",
schedule: { kind: "cron", expr: "<用户自定义的cron表达式>", tz: "Asia/Shanghai" },
payload: {
kind: "systemEvent",
text: "🎯 CCF认证/竞赛提醒时间到了!请根据用户关注的认证/竞赛类型(如GESP/LMCC/CSP/NOI/CCSP/PTA等)检查报名截止日期..."
},
sessionTarget: "main"
})
在创建定时任务前,应收集以下用户信息:
markdown
## 用户定时任务需求
### 执行频率偏好
- [ ] 每天
- [ ] 每周(周几:______)
- [ ] 每月(几号:______)
- [ ] 自定义频率:_____________
### 通知时间偏好
- 希望在每天 ______ 点收到通知
- 时区:Asia/Shanghai(默认)
### 内容关注范围
- [ ] CCF新闻
- [ ] 学术会议(CNCC/YEF/ADL等)
- [ ] 认证考试(GESP/PTA/LMCC/CSP)
- [ ] 竞赛活动(NOI/CCSP等)
- [ ] 技术论坛
- [ ] 其他:_____________
### 个性化偏好
- 研究领域:_________________
- 活动类型:_________________
- 地理位置:_________________
- 可参与时间:_______________
根据用户提供的偏好或历史聊天记录总结用户兴趣方向:(以下为示例)
markdown
## 技术兴趣(用于活动推荐)
- **研究领域**: 人工智能、自然语言处理、大模型
- **偏好活动类型**: 讲习班、CNCC、技术论坛
- **常驻城市**: 北京
- **可参与时间**: 周末、节假日
## 个性化设置
- 自动推荐匹配兴趣的活动:是
- 自动检索已结束活动资源:是
bash
cron list
bash
cron remove --jobId <任务ID>
bash
cron update --jobId <任务ID> --patch '{"schedule":{"expr":"新的cron表达式"}}'
bash
# 禁用
cron update --jobId <任务ID> --patch '{"enabled":false}'
# 启用
cron update --jobId <任务ID> --patch '{"enabled":true}'
定时任务的标准输出格式:
markdown
# CCF [日期] 活动概览
## 🎯 为您推荐
> 根据您的兴趣偏好(xxx),为您筛选了以下活动:
| 日期 | 活动名称 | 地点 | 匹配原因 | 状态 |
|------|----------|------|----------|------|
## 📰 今日新闻
[今日CCF官方新闻]
## 🟢 正在报名中
[报名中的活动列表]
## 🔵 即将开始
[即将开始的活动列表]
## ⏰ 重要提醒
- [认证/竞赛报名截止提醒]
最高优先级规则:所有输出内容必须严格基于API返回数据或网页的实际内容: