KGTAF

Cnki Exp Search Automation

知识管理v0.2.0
作者:KGTAF更新于 2026-05-11共 2 个版本 · 最新版本发布于 2026-03-16cnki-exp-search-automation@clawhub_killgfat/cnki-exp-search-automation
信息检索#浏览器自动化#Cnki#中国知网#学术搜索#摘要提取

据 AlphaMoat 统计,截至 2026-09,Cnki Exp Search Automation 累计下载 3,815 次、获 3 个星标,在全部 5,078 个 AI 技能中排名第 2,757 位,在「知识管理」分类(442 个)中排名第 253 位。

累计安装
511
累计下载
3,815
星标
3
全站排名
#2,757
全站前 55% · 「知识管理」前 58%
平台累计安装累计下载星标评论
ClawHub ↗551,8381-
SkillHub ↗5113,8153—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

该技能利用 OpenClaw 的浏览器工具自动化执行 CNKI 专业检索,获取文献列表、元数据和摘要信息,支持批量提取多页结果与翻页。它面向研究人员、分析师与开发者,建议在有头浏览器环境下处理反机器人验证,并遵守站点服务条款。滑块、点选与验证码验证需要用户手动完成,查看部分文献详情需要登录 CNKI 账号。

资料发布于 2026-10-27

可以用来做什么

  • 按专业检索语法批量获取 CNKI 文献列表
  • 提取文章详情页的标题、作者、摘要等元数据
  • 导出检索结果为 JSON 或 CSV 文件

什么时候用

  • 需要做系统性文献综述或数据集准备时
  • 需要从 CNKI 批量抓取文献元数据时
  • 遇到滑块或验证码需人工完成时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

在 CNKI 检索“结膜松弛的治疗”相关文献
获取这篇 CNKI 文章的摘要信息
把检索结果导出为 JSON 文件

月度数据趋势

累计下载3,815
1,0482,5344,0202026-03 · 累计下载 1,2532026-05 · 累计下载 2,1722026-06 · 累计下载 2,4262026-07 · 累计下载 2,7402026-08 · 累计下载 3,0232026-09 · 累计下载 3,81526-0326-09
星标3
1232026-03 · 星标 12026-05 · 星标 22026-06 · 星标 22026-07 · 星标 32026-08 · 星标 32026-09 · 星标 326-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-093,815—3
2026-083,023+10.3%3
2026-072,740+12.9%3
2026-062,426+11.7%2
2026-052,172—2
2026-031,253—1

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

14 KB · ClawHub v0.2.0
---
name: cnki-exp-search-automation
description: CNKI(中国知网)高级搜索自动化技能。使用浏览器自动化技术搜索文献并获取结果列表及摘要信息。建议在有头浏览器环境下使用以便于处理反机器人验证。
author: OpenClaw
version: 0.0.3
date: 2026-03-16
tags:
  - cnki
  - 中国知网
  - 文献检索
展开全部(共 581 行)
  - 学术搜索
  - 浏览器自动化
  - 摘要提取
categories:
  - 学术研究
  - 数据采集
requires:
  - browser: 浏览器工具(建议使用有头浏览器以便处理验证)
  - network: 网络访问 CNKI
references:
  - cnki-fields.md: CNKI专业检索字段一览表
  - query-examples.md: CNKI专业检索查询案例
notes: |
  - 反机器人验证需要用户自行解决:当出现滑块验证、点选验证或验证码时,需要用户手动完成验证
  - 建议在有头浏览器(headful)环境下使用,无头模式可能触发验证
  - 请合理控制请求频率,遵守CNKI服务条款
  - 本技能通过 OpenClaw 的 browser 工具执行浏览器操作
  - 建议设置 profile="user" 使用用户浏览器以便处理验证码
permissions:
  - browser: 控制浏览器访问网页
  - storage: 读写文件保存数据
features:
  - CNKI高级搜索/专业检索
  - 批量获取搜索结果列表
  - 文章详情页摘要提取
  - 反机器人验证处理(需用户手动完成)
  - 多页结果翻页提取
usage: |
  ## 快速开始

  ### 示例命令
  
  **搜索文献:**
  在CNKI上搜索"结膜松弛的治疗"相关文献
  
  **获取摘要:**
  获取某篇CNKI文章的摘要信息
  
  ---
---

# 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)

在浏览器控制台执行以下代码提取当前页结果:

```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();
```

**提取后数据示例:**
```json
[
  {
    "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: 提取文章元数据**

在浏览器中执行以下代码:

```javascript
// 提取文章详情
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();
```

**提取后数据示例:**
```json
{
  "title": "新月形结膜切除联合结膜巩膜固定术治疗结膜松弛症",
  "authors": ["武耀红", "何敏"],
  "institution": "山西医科大学第二医院",
  "journal": "临床医药实践",
  "publishDate": "2006-04-25",
  "abstract": "目的: 探讨新月形结膜切除联合结膜巩膜固定术治疗结膜松弛症的疗效...",
  "keywords": ["结膜松弛症", "新月形切除", "巩膜固定术"],
  "doi": "",
  "pages": "293-294",
  "volume": "2006(04)",
  "cites": 0
}
```

---

## 常用查询示例

### 基础检索

| 检索内容 | 查询语句 |
|----------|----------|
| 结膜松弛主题 | `SU='结膜松弛'` |
| 结膜松弛治疗 | `SU='结膜松弛' and SU='治疗'` |
| 结膜松弛或手术 | `SU='结膜松弛' or SU='手术'` |

### 进阶检索

| 检索内容 | 查询语句 |
|----------|----------|
| 特定作者 | `AU='张兴儒' and SU='结膜松弛'` |
| 特定单位 | `AF='复旦大学' and SU='结膜松弛'` |
| 篇名检索 | `TI='结膜松弛症'` |
| 全文检索 | `FT='手术方法'` |
| 高被引文献 | `SU='结膜松弛' and CF>10` |
| 特定期刊 | `LY='中华眼科杂志' and SU='结膜松弛'` |

### 医学检索

| 检索内容 | 查询语句 |
|----------|----------|
| 眼科分类 | `SU='结膜松弛' and CLC=R779.6` |
| 基金资助 | `FU='国家自然科学基金' and SU='结膜松弛'` |
| 中英文扩展 | `SU='结膜松弛' or SU='conjunctivochalasis'` |

---

## 反机器人验证处理

CNKI 可能会出现验证,需要用户手动处理:

### 验证类型

1. **滑块验证** - 拖动滑块完成拼图
2. **点选验证** - 点击指定图片
3. **验证码输入** - 输入数字/字母

### 处理方法

**有头浏览器模式(推荐):**

使用 `profile="user"` 让用户可以在浏览器中手动完成验证:

```
profile: user
action: navigate
url: https://kns.cnki.net/kns8s/AdvSearch?type=expert
```

出现验证时,告诉用户:
> "检测到CNKI验证,请手动完成验证后继续"

用户完成验证后,继续执行后续操作。

### 避免验证的建议

- 使用有头模式而非无头模式
- 降低操作频率,避免快速连续请求
- 每次操作间添加适当延迟(2-3秒)
- 保持会话,不要频繁新建浏览器实例

---

## 数据导出

### 导出为JSON

将提取的数据保存为JSON文件:

```
# 提取的数据格式
[
  {
    "title": "文献标题",
    "link": "https://...",
    "authors": "作者列表",
    "source": "期刊来源",
    "date": "发表日期",
    "cites": "引用数"
  }
]
```

使用 write 工具保存:

```
file_path: cnki_results.json
content: <提取的JSON数据>
```

### 导出为CSV

转换为CSV格式:

```
title,authors,source,date,cites
文献标题,作者,期刊,日期,引用数
...
```

---

## 完整工作流示例

### 搜索结膜松弛治疗文献

**1. 打开高级搜索页面**
```
action: navigate
url: https://kns.cnki.net/kns8s/AdvSearch?type=expert
```

**2. 等待页面加载**
```
loadState: networkidle
timeMs: 10000
```

**3. 输入搜索词**
```
kind: fill
ref: 搜索框
text: SU='结膜松弛' and SU='治疗'
```

**4. 点击搜索**
```
kind: click
ref: 搜索按钮
```

**5. 等待结果并提取**
```
loadState: networkidle
timeMs: 8000
```

**6. 翻页提取多页结果**

循环执行:提取当前页 → 翻页 → 等待 → 提取

**7. 保存结果**

将提取的数据保存到文件。

---

## 注意事项

1. **验证码处理**:有头模式下用户可手动处理
2. **请求频率**:每页操作间隔2-3秒
3. **数据完整性**:部分老文献可能无摘要
4. **登录状态**:需要登录才能查看部分文献详情

---

## 错误处理

| 错误情况 | 解决方法 |
|----------|----------|
| 页面加载超时 | 增加等待时间或刷新重试 |
| 找不到元素 | 使用备选选择器 |
| 验证码出现 | 等待用户手动完成 |
| 数据提取为空 | 检查页面结构是否变化 |

---

## 相关文件

- `references/cnki-fields.md` - CNKI专业检索字段一览表
- `references/query-examples.md` - CNKI专业检索查询案例

---

## 更新日志

### 2026-03-16 (v0.0.3)
- 新增时间范围筛选功能说明
- 添加发表时间(具体日期范围)设置方法
- 添加更新时间(相对时间下拉选项)设置方法
- 添加元素引用参考(ref=e124, e125, e129, e130, e131)

### 2026-03-15 (v0.0.2)
- 完善浏览器操作流程
- 添加详细的JavaScript提取代码
- 增加常用查询示例
- 完善反机器人验证处理说明

### 2026-03-05 (v0.0.1)
- 初始版本
---

## 时间范围设置(2026-03-16 更新)

### 发表时间(Publication Time)- 具体日期范围

高级搜索页面提供两种时间范围筛选方式。

#### 方式一:发表时间 - 具体日期范围

点击日期输入框会弹出日历选择器,可选择具体日期:

```
# 点击第一个日期输入框(开始日期)
kind: click
ref: e124  # 发表时间开始日期输入框

# 在弹出的日历中选择日期
# 日历显示当月所有天数,点击具体日期即可选中

# 点击第二个日期输入框(结束日期)
kind: click
ref: e125  # 发表时间结束日期输入框

# 在弹出的日历中选择结束日期
```

**元素参考:**
- 发表时间开始日期输入框: `ref=e124`
- 发表时间结束日期输入框: `ref=e125`
- 两个输入框之间显示为: `2026-03-01 -- 2026-03-31`

**日历选择器操作:**
1. 点击日期输入框,弹出日历
2. 日历默认显示当前月份
3. 点击具体日期数字即可选中
4. 选择后日历自动关闭,日期显示在输入框中
5. 日期格式为: YYYY-MM-DD (如: 2026-03-01)

#### 方式二:更新时间 - 相对时间下拉选项

点击下拉菜单可选择预设的时间范围:

```
# 点击更新时间下拉菜单
kind: click
ref: e129  # 更新时间下拉菜单
```

**元素参考:**
- 更新时间下拉区域: `ref=e129`
- 当前选中值: `ref=e130` (默认显示"不限")
- 下拉箭头: `ref=e131` (显示"∨")
- 下拉选项列表容器: `ref=e641`
- 各选项元素引用:
  - 不限: `ref=e642`
  - 最近一周: `ref=e644`
  - 最近一月: `ref=e646`
  - 最近半年: `ref=e648`
  - 最近一年: `ref=e650`
  - 今年迄今: `ref=e652`
  - 上一年度: `ref=e654`

**可选时间范围:**
- 不限(默认)
- 最近一周
- 最近一月
- 最近半年
- 最近一年
- 今年迄今
- 上一年度
(具体选项以实际页面为准)

「知识管理」分类下的热门技能

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。