Skill: yipng05-max/cnki-advanced-search (version 1.1.0)

--- name: cnki-advanced-search description: > 知网（CNKI）高级检索论文自动化工具。当用户提供研究关键词（一组或多组）时，自动在知网 高级检索页面模拟人类检索行为：选择学术期刊类别、勾选CSSCI来源、输入主题关键词（含同义词 和同位词，用 + 连接）、多组关键词用OR关系连接，检索后按被引量排序、切换50条/页、 打开摘要视图，最终通过"导出与分析"功能以"查新（引文格式）"导出为Word文件， 包含完整的题录和摘要信息。 触发条件：用户提到需要在知网/CNKI检索论文、高级检索、按关键词搜索CSSCI/C刊论文、 下载题录信息、获取论文摘要、按被引排序检索；或说"帮我在知网检索XX相关论文"、 "用知网高级检索搜索XX主题的C刊论文"、"帮我检索XX关键词的CSSCI论文"。 --- # 知网高级检索论文工具 使用Chrome DevTools MCP工具在知网高级检索页面自动执行检索操作，提取CSSCI来源期刊论文的题录和摘要信息。 ## ⛔ 本次执行必须产出（完成标准，不得跳过） ``` 执行前阅读此清单，执行结束前逐条核对： [ ] Step 1-8：检索流程完整执行（选学术期刊→勾CSSCI→填关键词→搜索→被引排序→50条/页→摘要视图） [ ] Step 9：通过"导出与分析"→"导出文献"→"查新（引文格式）"导出Word文件 [ ] Step 10：Word文件已下载保存，文件路径已记录并告知用户 以上三项全部完成才算"检索完成"，缺任何一项均不得向用户宣布完成。 ``` ## Step 0: 解析用户关键词 从用户输入中提取检索关键词，组织为检索表达式： - **单组关键词**：关键词及其同义词/同位词用 ` + ` 连接（+前后各一个空格），填入同一个主题检索框 - 例：用户说"数字化转型"→ 检索词为 `数字化转型 + 数字化变革 + 数字化` - **多组关键词**：每组填入独立的主题检索框，组间关系选OR - 例：用户说"数字化转型与企业绩效"→ 第一组 `数字化转型 + 数字化变革`，第二组 `企业绩效 + 企业业绩 + 组织绩效` 向用户确认关键词分组和同义词扩展后再执行检索。 ## Step 1: 打开知网高级检索页面 **⚠️ 必须使用 `profile="openclaw"`**（龙虾自管理的独立浏览器），绝对不能用 `profile="chrome"`（后者需要用户手动挂标签页，破坏自动化体验）。 ``` browser(action="open", profile="openclaw", url="https://kns.cnki.net/kns8s/AdvSearch") ``` 打开后立即 snapshot 确认页面加载状态，后续所有 browser 操作都传入同一个 `targetId`。 **验证码处理（重要！）**： - snapshot 中存在"拖动下方拼图完成验证"或"安全验证"等 DOM 元素 → **不要停下来报告！直接继续操作表单** - 这些文字通常是页面中常驻的隐藏元素，不代表验证码真正弹出拦截 - 只有当**表单本身无法操作**（填入关键词后点击检索失败，或页面明显被遮盖）时，才提示用户手动完成验证 - 判断原则：**试了才算**，不能只看 DOM 就认定被拦截 ## Step 2: 选择"学术期刊"类别 snapshot 查看页面，**在页面底部或侧边栏找到文献类型选项卡**，点击"学术期刊"链接。 ⚠️ **避免踩坑**： - 页面底部有页脚区域，包含"关于我们"、"CNKI荣誉"等链接，这些 **不是** 文献类型选项卡 - 学术期刊链接通常在页面中部的选项卡区域，文字为"学术期刊"（ref 通常为较小编号） - 点击后页面刷新，出现来源类别选项（CSSCI、SCI、北大核心等），才说明点击正确 ## Step 3: 勾选CSSCI来源类别 snapshot 确认来源类别区域已显示，找到"CSSCI"对应的 checkbox 元素并点击勾选。 先取消"全部期刊"的勾选（如已勾选），再勾选"CSSCI"。 ## Step 4: 输入主题检索词 ### 4.1 第一组关键词 找到第一个"主题"检索框，**先 click 聚焦，再 type 输入**，不要使用 fill（fill 需要特殊的 fields 格式，容易报错）： ``` browser(action="act", request={"kind": "click", "ref": "eXX"}) browser(action="act", request={"kind": "type", "ref": "eXX", "text": "老旧社区 + 老旧小区 + 旧城改造"}) ``` ⚠️ **不要用 `kind: fill`**，会报 "fields are required" 错误，改用 `click` + `type` 两步完成。 示例：`数字化转型 + 数字化变革 + 数字化` ### 4.2 多组关键词（如有） 若有多组关键词： 1. **点击"+"按钮**添加新检索行 2. take_snapshot查看新增行 3. **修改新增行的检索字段类型**：新增行默认可能不是"主题"，需点击字段类型下拉框，选择"主题" 4. **修改逻辑运算符**：点击两行之间的运算符下拉框（默认"AND"），改选"OR" 5. **填入第二组关键词**：在新增行的检索框中fill第二组关键词表达式 重复以上步骤添加更多组。 ### 运算符说明 知网高级检索框内的运算符： - `+`（或）：前后各留一个空格，如 `关键词A + 关键词B` - `*`（与）：前后各留一个空格 - `-`（非）：前后各留一个空格 ## Step 5: 执行检索 点击"检索"按钮，等待结果页加载。 ``` wait_for → "检索结果" 或等待结果列表出现 ``` 若出现验证码，提示用户完成后重试。 ## Step 6: 按被引量排序 在检索结果页take_snapshot，找到排序选项区域，点击"被引"排序按钮使结果按被引数量从高到低排列。 可能需要点击两次（第一次升序，第二次降序），确认排序方向为降序（被引最多的在前）。 ## Step 7: 切换每页显示50条 take_snapshot查看分页区域，找到每页显示数量的下拉选项或链接（默认20条），切换为50条。 通常页面底部有 `20 | 50` 的选项，点击"50"。 ## Step 8: 切换摘要视图 找到50旁边的视图切换图标（通常是列表视图/摘要视图的切换按钮），点击打开"摘要视图"（或称"详细视图"），使页面显示每篇论文的完整摘要。 take_snapshot确认摘要内容已展示。 ## Step 9: 通过"导出与分析"导出题录和摘要 检索结果展示后（已完成被引排序、50条/页、摘要视图），通过知网自带的导出功能获取完整题录和摘要信息。 ### 9.1 勾选要导出的论文 - 在结果列表上方或表头区域，找到"全选"复选框（通常标注为"全选"或位于序号列表头），点击勾选当前页全部论文 - 若总结果超过50篇且需要导出更多，先导出第一页，再翻页勾选导出第二页（最多导出前100篇） - 若总结果不足50篇，全选即可 ### 9.2 点击"导出与分析" take_snapshot 找到页面上方工具栏中的 **"导出与分析"** 下拉菜单按钮，点击展开。 ### 9.3 选择"导出文献" 在下拉菜单中点击 **"导出文献"**，等待导出选项页面/弹窗加载。 ### 9.4 选择"查新（引文格式）" 在导出格式选项中，选择 **"查新（引文格式）"**。该格式包含完整的题录信息和摘要全文。 take_snapshot 确认已选中"查新（引文格式）"。 ### 9.5 下载为 Word 文件 点击 **"导出"** 或 **"下载"** 按钮，选择 Word 格式下载。 ⚠️ **注意**： - 导出页面可能有多种下载格式选项（Word、PDF、TXT等），优先选择 **Word** 格式 - 如果页面有"在线阅读"和"下载"两个按钮，点击"下载" - 下载完成后记录文件保存路径 ### 9.6 多页导出（如需要） 若检索结果超过50篇且需导出前100篇： 1. 第一页导出完成后，返回检索结果页 2. 点击"下一页"翻到第2页 3. 重复 9.1-9.5 步骤导出第二页 4. 最终得到1-2个Word文件 ## Step 10: 确认导出并告知用户 1. 确认Word文件已成功下载，检查文件是否存在且非空 2. 将文件移动/复制到 `~/Downloads/知网检索结果_{关键词摘要}_{日期}.docx`（如有多个文件则按页码编号） 3. 向用户报告： - 检索关键词和条件 - 检索结果总数 - 实际导出论文数量 - 导出文件路径 - 文件内容说明（包含完整题录：标题、全部作者、期刊、年份卷期、摘要等） ## 注意事项 - 知网有反爬机制，每步操作间隔1-2秒，避免频繁请求 - 验证码出现时必须请用户手动完成 - 检索前向用户确认关键词分组和同义词扩展 - 全程向用户报告进度 - 若总结果不足100篇，告知用户实际数量并全部导出 - "查新（引文格式）"导出的Word文件包含完整作者列表、发表年份、期刊卷期号和摘要全文，信息比页面列表视图更准确完整 - 若导出功能受限（如需要登录、付费等），回退到snapshot逐条读取并用Python生成Excel


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)