一键导入
cnki-navigate-pages
Navigate CNKI search result pages or change sorting order. Use when Codex needs 知网结果翻页、跳到指定页、上一页/下一页、按发表时间/被引/下载/相关度/综合排序,并继续解析新的结果页。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Navigate CNKI search result pages or change sorting order. Use when Codex needs 知网结果翻页、跳到指定页、上一页/下一页、按发表时间/被引/下载/相关度/综合排序,并继续解析新的结果页。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Perform advanced CNKI searches with field filters such as subject, title, keyword, author, journal, year range, and source category (SCI/EI/CSSCI/北大核心/CSCD). Use when Codex needs 精确筛选知网文献、限定作者/期刊/年份/来源类别,或普通关键词检索不够准确。
Trigger authorized CNKI paper PDF or CAJ downloads from a paper detail page. Use when Codex needs 在用户已登录且有下载权限时下载知网论文、优先 PDF、必要时 CAJ,或根据论文 URL 打开详情页后触发浏览器下载。
Export CNKI citation metadata from a paper detail page or search results page, output GB/T 7714 text, save RIS/EndNote-style data, or push items to Zotero through the local Zotero Connector API. Use when Codex needs 导出知网引用、批量保存检索结果、写入 Zotero、生成 GB/T 7714 引文,或复用结果页 exportId。
Query CNKI journal indexing and evaluation data, including 北大核心, CSSCI, CSCD, SCI, EI, AMI, Scopus, ISSN/CN, sponsor, publication cycle, paper count, and impact factors. Use when Codex needs 判断期刊级别、查询是否核心/CSSCI/CSCD/EI/SCI、核对期刊收录和评价指标。
Search CNKI journal navigation by journal name, ISSN, CN number, or sponsor and return structured journal candidates. Use when Codex needs 查找知网期刊、确认 ISSN/CN、获取影响因子、主办单位、被引/下载数据,或为收录查询和期刊目录浏览定位期刊详情页。
Browse CNKI journal issues and extract a specific issue table of contents, with optional authorized original TOC PDF download. Use when Codex needs 查看某期刊某年某期目录、列出该期论文题名作者页码、打开原版目录浏览,或在用户有权限时触发目录 PDF 下载。
基于 SOC 职业分类
| name | cnki-navigate-pages |
| description | Navigate CNKI search result pages or change sorting order. Use when Codex needs 知网结果翻页、跳到指定页、上一页/下一页、按发表时间/被引/下载/相关度/综合排序,并继续解析新的结果页。 |
在当前知网检索结果页执行翻页或排序操作。操作后通常继续使用 $cnki-parse-results 读取新页面结果。
从用户请求中识别:
next、previous、page N、第 N 页。把 ACTION_HERE 替换为 "next"、"previous" 或 "page 3"。
async () => {
const captcha = document.querySelector('#tcaptcha_transform_dy');
if (captcha && captcha.getBoundingClientRect().top >= 0) return { error: 'captcha' };
const action = "ACTION_HERE";
const pageLinks = document.querySelectorAll('.pages a');
const previousPageMark = document.querySelector('.countPageMark')?.innerText;
if (action === 'next') {
const next = Array.from(pageLinks).find((a) => a.innerText.trim() === '下一页');
if (!next) return { error: 'no_next_page' };
next.click();
} else if (action === 'previous') {
const previous = Array.from(pageLinks).find((a) => a.innerText.trim() === '上一页');
if (!previous) return { error: 'no_previous_page' };
previous.click();
} else {
const pageNumber = action.replace(/\D/g, '');
const target = Array.from(pageLinks).find((a) => a.innerText.trim() === pageNumber);
if (!target) {
return {
error: 'page_not_found',
available: Array.from(pageLinks).map((a) => a.innerText.trim()).filter(Boolean)
};
}
target.click();
}
await new Promise((resolve, reject) => {
let tries = 0;
const check = () => {
const currentPageMark = document.querySelector('.countPageMark')?.innerText;
if (currentPageMark && currentPageMark !== previousPageMark) resolve();
else if (++tries > 30) reject(new Error('timeout: page change'));
else setTimeout(check, 500);
};
setTimeout(check, 1000);
});
const captchaAfterAction = document.querySelector('#tcaptcha_transform_dy');
if (captchaAfterAction && captchaAfterAction.getBoundingClientRect().top >= 0) return { error: 'captcha' };
return {
action,
total: document.querySelector('.pagerTitleCell')?.innerText?.match(/([\d,]+)/)?.[1] || '0',
page: document.querySelector('.countPageMark')?.innerText || '?',
url: location.href
};
}
把 SORT_HERE 替换为 "relevance"、"date"、"citations"、"downloads" 或 "comprehensive"。
async () => {
const captcha = document.querySelector('#tcaptcha_transform_dy');
if (captcha && captcha.getBoundingClientRect().top >= 0) return { error: 'captcha' };
const sortBy = "SORT_HERE";
const idMap = {
relevance: 'FFD',
date: 'PT',
citations: 'CF',
downloads: 'DFR',
comprehensive: 'ZH'
};
const liId = idMap[sortBy];
if (!liId) return { error: 'invalid_sort', valid: Object.keys(idMap) };
const option = document.querySelector('#orderList li#' + liId);
if (!option) return { error: 'sort_option_not_found' };
const previousPageMark = document.querySelector('.countPageMark')?.innerText;
option.click();
await new Promise((resolve, reject) => {
let tries = 0;
const check = () => {
const currentPageMark = document.querySelector('.countPageMark')?.innerText;
if (currentPageMark && currentPageMark !== previousPageMark) resolve();
else if (++tries > 30) reject(new Error('timeout: sort'));
else setTimeout(check, 500);
};
setTimeout(check, 1000);
});
return {
sortBy,
total: document.querySelector('.pagerTitleCell')?.innerText?.match(/([\d,]+)/)?.[1] || '0',
page: document.querySelector('.countPageMark')?.innerText || '?',
activeSort: document.querySelector('#orderList li.cur')?.innerText?.trim(),
url: location.href
};
}
已切换:{action 或 sortBy}
当前页:{page},总结果:{total}。
| 数据 | 选择器 |
|---|---|
| 页码链接 | .pages a |
| 当前页 | .pages a.cur |
| 页码计数 | .countPageMark |
| 排序列表 | #orderList li |
| 相关度 | li#FFD |
| 发表时间 | li#PT |
| 被引 | li#CF |
| 下载 | li#DFR |
| 综合 | li#ZH |
| 当前排序 | #orderList li.cur |