用途
cnki-search 用于在中国知网(CNKI)上按关键词检索学术论文。当用户希望查找某一主题的学术论文时,可使用该技能完成检索并获取结构化结果。
主要能力
- 使用中文或英文关键词在 CNKI 进行检索。
- 单次调用即可返回结果总数与结构化结果列表。
- 提取字段包括:标题、URL、作者、期刊、日期、数据库类型(期刊/学位论文/会议等)、被引次数、下载次数,以及是否为网络首发。
- 支持将结果批量导出到 Zotero(通过 cnki-export 技能的批量模式)。
使用方式
该技能基于 RC 浏览器工具运行:使用 browser action=open 打开 URL,并在每一步通过 browser action=act kind=evaluate fn="<异步函数>" 执行 JS(整个函数体放入 fn)。不使用 profile,RC 使用其默认管理的 Chrome(CDP 18800)。
步骤:
- 导航:使用 browser action=open 打开 https://kns.cnki.net/kns8s/search
- 检索并提取结果:单次 browser act kind=evaluate,不使用 wait_for。将 YOUR_KEYWORDS 替换为实际检索词。脚本会等待搜索输入框出现、检查验证码、填入关键词并提交、等待结果出现、再次检查验证码,然后解析当前页结果。
- 报告:以编号列表呈现结果,格式为:Searched CNKI for "$ARGUMENTS": found {total} results (page {page}),随后逐条列出标题、作者、期刊、日期、被引次数、下载次数。
- 后续操作:当用户想打开或下载某篇论文时,直接使用 browser action=open 打开结果中的 href URL,不要点击链接(点击会打开新标签页并浪费额外的工具调用)。
验证码检测:检查 #tcaptcha_transform_dy 元素的 getBoundingClientRect().top >= 0。腾讯验证码 SDK 会在 top: -1000000px(屏幕外,未激活)预加载 DOM。仅当 top >= 0(用户实际可见)时返回 error: 'captcha'。
已验证的选择器:
- 搜索输入框:input.search-input(id=txt_search,placeholder "中文文献、外文文献")
- 搜索按钮:input.search-btn(type="button")
- 结果数量:.pagerTitleCell(文本 "共找到 X 条结果")
- 页码指示:.countPageMark(文本 "1/300")
- 结果行:.result-table-list tbody tr(每行一篇论文)
- 标题链接:td.name a.fz14(含 href)
- 作者:td.author a.KnowledgeNetLink
- 期刊:td.source a
- 日期:td.date
- 数据库:td.data(期刊/学位论文/会议…)
- 被引次数:td.quote(空白 = 0,网络首发常见)
- 下载次数:td.download(空白 = 0,网络首发常见)
- 网络首发:td.name .marktip(存在 "网络首发" 标签)
批量导出到 Zotero:当用户想将结果保存到 Zotero 时,直接从结果页使用批量导出,不要逐篇导航到详情页。结果中的 exportId 等于详情页的 #export-id。调用 cnki-export 技能的批量模式(Step 1B)。详见 cnki-export SKILL.md。
工具调用:2 次(导航 + browser act kind=evaluate)。
适用场景
- 用户需要查找某一主题的学术论文。
- 需要获取论文的标题、作者、期刊、日期、被引与下载等元数据。
- 需要将检索结果批量保存到 Zotero。
限制
- 依赖 RC 浏览器工具与默认管理的 Chrome(CDP 18800)。
- 检索过程中可能遇到验证码,此时返回 error: 'captcha'。
- 仅提取当前页结果,未提供翻页或跨页聚合的说明。
- 关于收费、价格、平台覆盖范围等未提供更多信息。