# Cnki Advanced Search

Perform advanced search on CNKI with field filters like author, title, journal, date...

- Repository: https://github.com/cookjohn/cnki-skills (1031 stars)
- Category: Design
- License: see repository
- Last updated: 2026-03-13
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add cookjohn/cnki-skills --skill cnki-advanced-search -g -a claude-code -y`
Codex: `npx skills add cookjohn/cnki-skills --skill cnki-advanced-search -g -a codex -y`
Cursor: `npx skills add cookjohn/cnki-skills --skill cnki-advanced-search -g -a cursor -y`
Gemini CLI: `npx skills add cookjohn/cnki-skills --skill cnki-advanced-search -g -a gemini-cli -y`

## Description

Perform advanced search on CNKI with field filters like author, title, journal, date range, source category (SCI/EI/CSSCI/北大核心). Use when user needs precise filtered search beyond simple keywords.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# CNKI Advanced Search (高级检索)

Perform a filtered search on CNKI using the **old-style** advanced search interface (only interface with source category checkboxes).

## Arguments

`$ARGUMENTS` describes the search criteria in natural language. Parse it to identify:
- **Subject keywords** (主题), default field
- **Title keywords** (篇名)
- **Keywords** (关键词)
- **Author name** (作者), separate field `#au_1_value1`
- **Journal/source** (文献来源), separate field `#magazine_value1`
- **Date range** (时间范围), `#startYear` / `#endYear`
- **Source category** (来源类别：SCI, EI, 北大核心, CSSCI, CSCD)

## Steps

### 1. Navigate

Use `mcp__chrome-devtools__navigate_page` → `https://kns.cnki.net/kns/AdvSearch?classid=7NS01R8M`

### 2. Search + get results (single async evaluate_script)

Replace placeholder values with actual search criteria:

```javascript
async () => {
  // --- Config: fill in actual values ---
  const query = "KEYWORDS";          // row 1 search keywords
  const fieldType = "SU";           // SU=主题, TI=篇名, KY=关键词, TKA=篇关摘, AB=摘要
  const query2 = "";                // row 2 keywords (optional, "" to skip)
  const fieldType2 = "KY";          // row 2 field type
  const rowLogic = "AND";           // AND=并且, OR=或者, NOT=不含 (between row 1 and 2)
  const sourceTypes = ["CSSCI"];    // any of: "SCI", "EI", "hx", "CSSCI", "CSCD" ([] = all)
  const startYear = "";             // e.g. "2020" or "" for no limit
  const endYear = "";               // e.g. "2025" or "" for no limit
  const author = "";                // author name or ""
  const journal = "";               // journal name or ""

  // --- Wait for form ---
  await new Promise((r, j) => {
    let n = 0;
    const c = () => { if (document.querySelector('#txt_1_value1')) r(); else if (n++ > 30) j('timeout'); else setTimeout(c, 500); };
    c();
  });

  // Captcha check
  const cap = document.querySelector('#tcaptcha_transform_dy');
  if (cap && cap.getBoundingClientRect().top >= 0) return { error: 'captcha' };

The rest: https://github.com/cookjohn/cnki-skills/blob/HEAD/skills/cnki-advanced-search/SKILL.md
