运行时依赖
安装命令
点击复制技能文档
CNKI 高级搜索自动化技能 技能描述 CNKI(中国知网)高级搜索自动化技能。利用 OpenClaw 浏览器工具自动化执行 CNKI 专业检索,获取文献列表和摘要信息。 核心特点: 使用浏览器自动化,无需额外依赖 支持专业检索语法 批量提取多页结果 提取文章完整元数据 使用场景 学术文献调研 批量获取 CNKI 文献元数据 提取文献摘要信息 系统性文献综述 前置要求 OpenClaw 环境(已配置浏览器工具) 可访问 CNKI 网站(https://kns.cnki.net) 建议使用有头浏览器模式以便处理验证码 功能1:搜索并获取结果列表 执行步骤 Step 1: 打开CNKI高级搜索页面 使用 browser 工具导航到CNKI高级搜索页面: action: navigate url: https://kns.cnki.net/kns8s/AdvSearch?type=expert 或直接使用URL参数搜索: action: navigate url: https://kns.cnki.net/kns8s/AdvSearch?dbprefix=SCDB&action=adv_search&searchword=SU%3D%27%E7%BB%93%E8%86%9C%E6%9D%BE%E5%BC%80%27+and+SU%3D%27%E6%B2%BB%E7%96%97%27 Step 2: 输入搜索关键词 在搜索框中输入专业检索语句,如: SU='结膜松弛' and SU='治疗' 使用 fill 操作输入: kind: fill ref: 搜索框 text: SU='结膜松弛' and SU='治疗' Step 3: 点击搜索按钮 使用 click 操作: kind: click ref: 搜索按钮 Step 4: 等待并提取结果 等待结果加载后,使用 snapshot 或 evaluate 提取数据。 搜索结果提取(JavaScript) 在浏览器控制台执行以下代码提取当前页结果: // 提取搜索结果表格数据 function extractResults() { const results = []; // 尝试查找结果表格 const table = document.querySelector('table.resulttable') || document.querySelector('.result-table') || document.querySelector('table'); if (!table) { console.log('未找到结果表格'); return results; } const rows = table.querySelectorAll('tr'); rows.forEach(row => { const cells = row.querySelectorAll('td'); if (cells.length >= 5) { const titleCell = cells[1]; const titleLink = titleCell?.querySelector('a'); if (titleLink) { results.push({ title: titleLink.textContent?.trim() || '', link: titleLink.href || '', authors: cells[2]?.textContent?.trim() || '', source: cells[3]?.textContent?.trim() || '', date: cells[4]?.textContent?.trim() || '', cites: cells[6]?.textContent?.trim() || '0' }); } } }); return results; } extractResults(); 提取后数据示例: [ { "title": "射频微创治疗结膜松弛引起溢泪的临床观察", "link": "https://kns.cnki.net/kcms2/article/abstract/xxx", "authors": "郑璇;杨晓钊;杨华;张懿;王博", "source": "国际眼科杂志", "date": "2026-02-25", "cites": "0" } ] 翻页处理 翻到下一页(使用键盘更稳定): kind: press key: ArrowRight 或点击下一页按钮: kind: click ref: 下一页按钮 翻页后等待2-3秒让页面加载: timeMs: 3000 功能2:获取文章摘要信息 执行步骤 Step 1: 导航到文章详情页 直接打开文章URL: action: navigate url: https://kns.cnki.net/kcms2/article/abstract/xxxxx Step 2: 等待页面加载 等待主要元素加载完成: loadState: domcontentloaded timeMs: 5000 Step 3: 提取文章元数据 在浏览器中执行以下代码: // 提取文章详情 function extractArticleDetails() { const details = {}; // 标题 const titleEl = document.querySelector('h1') || document.querySelector('.title') || document.querySelector('[class="title"]'); details.title = titleEl?.textContent?.trim() || ''; // 作者列表 const authorLinks = document.querySelectorAll('.author-list a, .author a, a.author, [class="author"] a'); details.authors = Array.from(authorLinks).map(a => a.textContent?.trim()).filter(Boolean); // 机构 const orgEl = document.querySelector('[class="org"]') || document.querySelector('.institution') || document.querySelector('[class="institution"]'); details.institution = orgEl?.textContent?.trim() || ''; // 期刊 const journalEl = document.querySelector('.journal-name') || document.querySelector('.source') || document.querySelector('[class="journal"], [class="source"]'); details.journal = journalEl?.textContent?.trim() || ''; // 发表日期 const dateEl = document.querySelector('.publish-date') || document.querySelector('.date') || document.querySelector('[class="date"]'); details.publishDate = dateEl?.textContent?.trim() || ''; // 摘要 const abstractEl = document.querySelector('.abstract') || document.querySelector('.summary') || document.querySelector('[class="abstract"]'); details.abstract = abstractEl?.textContent?.trim() || ''; // 关键词 const keywordLinks = document.querySelectorAll('.keywords a, .keyword a, [class="keyword"] a'); details.keywords = Array.from(keywordLinks).map(k => k.textContent?.trim()).filter(Boolean); // DOI const doiEl = document.querySelector('.doi') || document.querySelector('[class="doi"]'); details.doi = doiEl?.textContent?.trim() || ''; // 页码 const pagesEl = document.querySelector('.pages'); details.pages = pagesEl?.textContent?.trim() || ''; // 卷期 const volumeEl = document.querySelector('.volume'); details.volume = volumeEl?.textContent?.trim() || ''; // 引用次数 const citeEl = document.querySelector('.cited') || document.querySelector('[class*="cite"]'); details.cites = citeEl?.textContent?.trim() || '0'; return details; } extractArticleDetails(); 提取后数据示例: { "title": "新月形结膜切除联合结膜巩膜固定术治疗结膜松弛症", "authors": ["武耀红", "何敏"], "institution": "山西医科大学第二医院", "journal": "临床医药实践", "publishDate": "2006-04-25", "abstract": "目的: 探讨新月形结膜切除联合结膜巩膜固定术治疗结膜松弛症的临床疗效。方法: 回顾性分析2004年1月至2005年12月在我院接受新月形结膜切除联合结膜巩膜固定术治疗的结膜松弛症患者的临床资料。结果: 30例患者中,男14例,女16例;年龄18~65岁,平均年龄35.6岁。手术后随访6个月至2年,平均随访时间14.5个月。结果显示,手术后患者的结膜松弛症状明显改善,视力提高,生活质量提高。结论: 新月形结膜切除联合结膜巩膜固定术是治疗结膜松弛症的一种有效方法。" }