Skills Plugins MCP Prompt Model 博客 我的中心

cnki-advanced-search

知网(CNKI)高级检索论文自动化工具。当用户提供研究关键词或研究选题时,自动执行 三阶段检索:①主体联合检索(倒剥洋葱法,多组核心概念 AND 联合,获取直接相关文献); ②独立补充检索(对各核心概念组分别单独检索,获取间接相关的背景文献与理论文献); ③汇总合并(去重后按类别分色展示,输出统一 Excel 文件)。 触发条件:用户提到需要在知网/CNKI检索论文、高级检索、按关键词搜索CSSCI/C刊论文、 下载题录信息、获取论文摘要、按被引排序检索;或说"帮我在知网检索XX相关论文"、 "用知网高级检索搜索XX主题的C刊论文"、"帮我检索XX关键词的CSSCI论文"。

DeepseekModel Curated skill Quality Excellent · 78 v1.0.0

Get

https://deepseekmodel.com/api/download.php?id=yipng05-max-skills-cnki-advanced-search-skill-md&format=skill
Download .skill Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name cnki-advanced-search description 知网(CNKI)高级检索论文自动化工具。当用户提供研究关键词或研究选题时,自动执行 三阶段检索:①主体联合检索(倒剥洋葱法,多组核心概念 AND 联合,获取直接相关文献); ②独立补充检索(对各核心概念组分别单独检索,获取间接相关的背景文献与理论文献); ③汇总合并(去重后按类别分色展示,输出统一 Excel 文件)。 触发条件:用户提到需要在知网/CNKI检索论文、高级检索、按关键词搜索CSSCI/C刊论文、 下载题录信息、获取论文摘要、按被引排序检索;或说"帮我在知网检索XX相关论文"、 "用知网高级检索搜索XX主题的C刊论文"、"帮我检索XX关键词的CSSCI论文"。 知网高级检索论文工具 调用 Python Playwright 脚本( scripts/cnki_search.py )执行全流程自动化检索,无需 MCP 工具操作浏览器。 Step 0: 解析用户输入并制定检索策略(倒剥洋葱法) 0.1 识别输入类型 类型一:单关键词 (用户给出一个词或概念) → 将该词及其同义词、同位词用 + 连接,填入单个检索框。 例:用户说"情感劳动"→ 情感劳动 + 情绪劳动 + 情感工作 类型二:研究选题 / 研究问题 (用户给出包含多个概念的完整表述) → 从选题中提取 2-4 个核心概念 ,每个概念分别扩展同义词/同位词,各自作为一个检索组, 组间关系为 AND (联合检索)。 例:用户说"超大城市老旧社区数字治理的悬浮与重建"→ 提取三组核心概念: 第一组(场所): 老旧社区 + 老旧小区 + 城市社区 第二组(议题): 数字治理 + 数字化治理 + 数字技术治理 第三组(机制): 技术悬浮 + 数字悬浮 + 技术失灵 三组形成 AND 联合检索,聚焦"老旧社区 × 数字治理 × 悬浮机制"的交叉文献。 注意 :不要把一个选题的几个概念各自独立检索再合并,那会检出大量不相关文献。AND联合检索才能聚焦核心文献。 0.2 上位概念预分析(关键步骤) 填词之前,对每个概念组完成以下判断: 判断该组词是否"过于精确/小众" : 新兴理论术语(如"技术悬浮""制度悬置") 极具体的场所或现象描述(如"老旧社区""城中村") 近几年才出现的政策/实践概念(如"数字乡村""反向育儿") 如果某组词落入上述类别, 立即在该组内加入上位概念 (用 + OR关系),不要等到检索失败后才扩展。 概念类型 精确词 主动纳入的上位概念/兜底词 新兴理论术语 技术悬浮 + 数字悬浮 技术失灵 + 数字鸿沟 + 基层数字化 具体场所 老旧社区 + 老旧小区 城市社区 + 社区治理 新政策概念 数字乡村 农村数字化 + 乡村振兴 + 农村信息化 具体机制 制度悬置 制度失效 + 制度执行 + 基层治理 规则 :宁可初始词组稍宽,也不要等检索为0后才想起扩展。上位概念应在设计时就一并纳入同一组的 + OR列表中。 0.3 倒剥洋葱策略(结果不足时自动降级) 先用 全部概念组 AND 检索 (最聚焦层)。若检索结果过少(< 20篇),自动减少 AND 组数, 最少保留 2 组 AND ,不自动降至 1 组: 层级 策略 适用场景 第1层(最聚焦) 所有概念组 AND 交叉研究、新兴议题 第2层 去掉最次要的一组,保留核心 N-1 组 AND 第1层结果 < 20篇 第3层(底线) 保留最核心的 2 组 AND 第2层结果仍 < 20篇 去组顺序原则 :先去掉与研究问题关系最外围的概念组(如修饰性概念、情境概念),最后保留最核心的理论/机制概念组。 0.4 向用户确认 列出拟定的检索分组和当前层级策略,等用户确认后再执行。格式示例: 检索策略:第1层(3组 AND 联合检索) - 组1(场所):老旧社区 + 老旧小区 + 城市社区 + 社区治理 - 组2(议题):数字治理 + 数字化治理 + 数字技术治理 - 组3(机制):技术悬浮 + 数字悬浮 + 技术失灵 + 基层数字化 若结果 < 20篇,将自动降至第2层(去掉组3,保留组1 AND 组2) 若仍 < 20篇,保留2组AND并停止降级,提示调整关键词 0.5 结果反思触发条件 脚本报告以下情况时, 必须停下来重新思考关键词,不能直接导出 : 情况 诊断方向 2组AND结果为0 两组词都太专 → 各自替换为更高层的上位概念 2组AND结果 < 5篇 某组词太冷僻 → 找出哪组更窄,优先替换该组 2组AND结果 5-19篇 边界情况 → 尝试在某一组补充1-2个上位概念后重检索 底线原则 :宁可修改关键词重跑,也不接受"2组AND < 20篇"的结果直接导出。1组AND的结果范围太宽,不具备文献聚焦价值。 Step 0.5: 检查 Chrome 调试模式 在执行前,检查 Chrome 是否已以调试模式运行(脚本会自动尝试连接): curl -s http://localhost:9222/json/version 2>&1 若返回 JSON (含 "Browser": "Chrome/..." ):Chrome 已就绪,直接进入 Step 1。 若返回错误/空 :执行以下命令启动 Chrome,等待 2 秒后再检查: open -a "Google Chrome" --args --remote-debugging-port=9222 sleep 2 curl -s http://localhost:9222/json/version 2>&1 若仍无响应,提示用户手动启动 Chrome 调试模式后继续。 注意:连接现有 Chrome 可保留已登录的知网会话,跳过登录步骤。 Step 1: 调用 Python 脚本执行检索(倒剥洋葱执行) 从第1层开始检索,根据结果数量决定是否降级。 第1层(全组 AND) : python3 /Users/songyiping/.claude/skills/cnki-advanced-search/scripts/cnki_search.py \ --keywords "老旧社区 + 老旧小区 + 城市社区" \ --keywords "数字治理 + 数字化治理 + 数字技术治理" \ --keywords "技术悬浮 + 数字悬浮 + 技术失灵" \ --max-results 100 \ --port 9222 若结果 < 20篇 → 降至第2层(去最次要组) : python3 /Users/songyiping/.claude/skills/cnki-advanced-search/scripts/cnki_search.py \ --keywords "老旧社区 + 老旧小区 + 城市社区" \ --keywords "数字治理 + 数字化治理 + 数字技术治理" \ --max-results 100 \ --port 9222 若仍 < 20篇 → 降至第3层(单组) : python3 /Users/songyiping/.claude/skills/cnki-advanced-search/scripts/cnki_search.py \ --keywords "数字治理 + 数字化治理 + 社区数字化" \ --max-results 100 \ --port 9222 每次降级前向用户说明:"第N层结果为 X 篇,不足20篇,自动降至第N+1层检索。" 脚本会自动处理 : 连接现有 Chrome(CDP 端口 9222)或启动新的 Chromium 导航到知网高级检索页面 验证码检测(出现时暂停,等用户在终端按 Enter 确认完成) 登录检查(未登录时暂停等用户登录) 选择学术期刊、勾选 CSSCI、填入关键词 执行检索、按被引量降序排列、每页50条 逐页全选并导出,最多100篇 解析数据、保存为 Excel 脚本输出示例 : ===== 知网高级检索自动化工具 ===== 关键词分组: ['老旧社区 + 老旧小区', '数字治理 + 数字化治理', '技术悬浮 + 数字悬浮'] 最大结果数: 100 ... [✓] 检索完成!共提取 87 篇论文 [✓] 文件已保存:/Users/songyiping/Downloads/知网检索_老旧社区_20260406_1523.xlsx Step 2: 独立补充检索(间接相关文献)——必做步骤 主体联合检索完成后, 必须 执行独立补充检索,目的是获取"不直接在交叉处、但对选题有理论支撑和背景价值"的间接相关文献。 2.1 补充检索设计原则 从 Step 0 已提取的概念组中,各自独立拆出 2-3 个补充检索 : 补充检索类型 来源概念 目的 研究对象背景文献 取"研究对象组"单独检索(放宽限定词) 获取该群体的历史脉络、政策背景、宏观描述性文献 核心理论文献 取"理论/机制概念组"单独检索 获取支撑该议题的理论基础文献,不限研究对象 扩展议题文献 (可选) 取选题中的次要概念或上位主题 覆盖选题边界的跨界文献 重要 :每个补充检索使用 2 组 AND (不做单组宽泛检索),仍需保持一定聚焦度。补充检索的目的是"换一个切面",不是"无限扩宽"。 2.2 向用户展示补充检索方案 在 Step 0.4 的策略确认中,同步列出补充检索方案,例如: 【主体联合检索】第1层(2组 AND) - 组1(对象):网约车司机 + 快车司机 + 平台司机 - 组2(议题):平台劳动 + 零工经济 + 意义建构 + 身份认同 【独立补充检索】(主体检索完成后必做) - 补充检索A(研究对象背景):出租车 + 网约车 × 职业认同 + 身份认同 + 劳动体验 - 补充检索B(核心理论):平台劳动 + 零工经济 + 算法管理 × 主体性 + 劳动控制 + 抵抗 2.3 执行补充检索 每个补充检索同样使用 cnki_search.py ,结果保存到独立 Excel 文件: # 补充检索A:研究对象背景文献 python3 /Users/songyiping/.claude/skills/cnki-advanced-search/scripts/cnki_search.py \ --keywords "出租车 + 网约车 + 出租车司机 + 网约车司机" \ --keywords "职业认同 + 身份认同 + 劳动体验 + 生计" \ --max-results 60 \ --port 9222 # 补充检索B:核心理论文献 python3 /Users/songyiping/.claude/skills/cnki-advanced-search/scripts/cnki_search.py \ --keywords "平台劳动 + 零工经济 + 平台工人 + 数字劳动 + 算法管理" \ --keywords "主体性 + 劳动控制 + 抵抗 + 意义建构 + 身份认同" \ --max-results 80 \ --port 9222 补充检索结果不足20篇时 不强制降级 (因为间接相关文献本就预期数量较少),但若结果为0,需替换上位概念重试。 Step 3: 汇总合并——输出统一分类 Excel 所有检索(主体 + 补充)完成后, 必须 用 Python 脚本将全部结果合并去重,生成一个统一的分类 Excel。 3.1 合并脚本模板 import openpyxl from openpyxl.styles import Font, PatternFill, Alignment from collections import Counter # 1. 定义各批次文件及其类别标签 files = { "直接相关([主体对象]×[核心议题])" : "/Users/songyiping/Downloads/知网检索_XXX.xlsx" , "间接相关-[背景类型]([对象]×[议题])" : "/Users/songyiping/Downloads/知网检索_YYY.xlsx" , "间接相关-[理论类型]([理论]×[机制])" : "/Users/songyiping/Downloads/知网检索_ZZZ.xlsx" , } # 2. 读取、去重(按"标题"列) all_rows = [] seen_titles = set () title_idx = 1 # Excel列: 序号(0), 标题(1), 作者(2), 来源期刊(3), 发表时间(4), 摘要(5) for category, filepath in files.items(): wb = openpyxl.load_workbook(filepath) ws = wb.active rows = list (ws.iter_rows(values_only= True )) for row in rows[ 1 :]: title = str (row[title_idx]).strip() if row[title_idx] else "" if title and title not in seen_titles: seen_titles.add(title) all_rows.append((category,) + tuple (row[ 1 :])) # 去掉原序号,前置类别 # 3. 写入汇总 Excel wb_out = openpyxl.Workbook() ws_out = wb_out.active ws_out.title = "文献汇总" headers = [ "序号" , "文献类别" , "标题" , "作者" , "来源期刊" , "发表时间" , "摘要" ] ws_out.append(headers) # 表头样式 for cell in ws_out[ 1 ]: cell.font = Font(bold= True , color= "FFFFFF" , size= 11 ) cell.fill = PatternFill(fill_type= "solid" , fgColor= "2F5496" ) cell.alignment = Alignment(horizontal= "center" , vertical= "center" , wrap_text= True ) # 各类别颜色(按类别数量自动分配,以下为示例3类) category_colors = { list (files.keys())[ 0 ]: "D9E1F2" , # 蓝:直接相关 list (files.keys())[ 1 ]: "E2EFDA" , # 绿:间接相关A list (files.keys())[ 2 ]: "FFF2CC" , # 黄:间接相关B } for seq, row_data in enumerate (all_rows, 1 ): category = row_data[ 0 ] ws_out.append((seq,) + row_data) fill_color = category_colors.get(category, "FFFFFF" ) for cell in ws_out[ws_out.max_row]: cell.fill = PatternFill(fill_type= "solid" , fgColor=fill_color) cell.alignment = Alignment(vertical= "top" , wrap_text= True ) # 列宽 for i, width in enumerate ([ 4 , 30 , 20 , 16 , 12 , 60 ], 1 ): ws_out.column_dimensions[openpyxl.utils.get_column_letter(i)].width = width ws_out.column_dimensions[ "B" ].width = 30 # 类别列 # 行高 for row in ws_out.iter_rows(min_row= 2 ): ws_out.row_dimensions[row[ 0 ].row].height = 60 ws_out.freeze_panes = "A2" # 分类统计 sheet ws_summary = wb_out.create_sheet( "分类统计" ) ws_summary.append([ "文献类别" , "篇数" ]) for cat, cnt in Counter(r[ 0 ] for r in all_rows).items(): ws_summary.append([cat, cnt]) ws_summary.append([ "合计" , len (all_rows)]) for cell in ws_summary[ 1 ]: cell.font = Font(bold= True ) output_path = f"/Users/songyiping/Downloads/知网文献汇总_ {研究主题} _ {日期} .xlsx" wb_out.save(output_path) print ( f"[✓] 已保存: {output_path} (共 { len (all_rows)} 篇,去重后)" ) 3.2 颜色约定 类别 颜色 含义 直接相关 蓝色 D9E1F2 主体联合检索命中,聚焦选题核心 间接相关-背景 绿色 E2EFDA 研究对象/情境的历史背景文献 间接相关-理论 黄色 FFF2CC 理论/机制的基础支撑文献 间接相关-扩展 橙色 FCE4D6 其他扩展视角文献(如有第4类) Step 4: 报告结果 输出检索完成报告,告知用户: 各轮检索层级与篇数 去重后总篇数 各类别分布(直接/间接) 汇总文件路径 打开文件: open "/Users/songyiping/Downloads/知网文献汇总_*.xlsx" 如需更多 AI 智能体学习资料和技巧,欢迎关注: 常见问题处理 问题 解决方案 CDP连接失败 脚本会自动降级到启动新浏览器,但需要手动登录知网 检测到验证码 脚本暂停并打印提示,在浏览器完成验证后在终端按 Enter 知网导出功能需要登录 脚本暂停,在浏览器登录后按 Enter 解析失败 原始文本保存到 ~/Downloads/cnki_raw_export_*.txt ,可手动检查 检索结果为0 调整关键词,减少同义词组合或放宽检索范围 需要调试延迟 添加 --delay 1500 (增加操作间等待时间,毫秒) 依赖 playwright (已安装) openpyxl (已安装) 如脚本提示缺少浏览器:运行 playwright install chromium
Keywords that activate this skill. Click one to copy it.

This skill does not provide trigger words.

The downloaded .skill package contains the following fields.
Field Description
formatFormat tag (skill/v1)
skill_idUnique skill ID
nameSkill name
versionVersion
descriptionDescription
categoryCategories (array)
trigger_wordsTrigger words
tagsTags
sourceSource
source_urlSource URL (this page)
exported_atExported at (set per download)
system_promptSystem prompt body
model_configModel config: provider / model / temperature / max_tokens / top_p
examplesExamples
install_guideImport guide for Coze / Dify / Claude / custom frameworks
The same skill can be exported in different platform formats.
.skill Standard format with system_prompt and model_config, ready for any agent framework Download
.skillpro Enhanced format with scripts, tools, dependencies and hooks Download
.json Plain JSON export with system_prompt and model parameters only Download
Coze Markdown with frontmatter, for Coze platform import Download
Dify Dify DSL, import directly after creating an app Download

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。