用途
CNKI Journal Table of Contents(期刊目录浏览 + 原版目录下载)用于在知网(CNKI)上浏览期刊的某一期,提取该期的论文列表,并可选择打开或下载原版目录 PDF(封面 + 目录扫描版)。
主要能力
- 浏览特定期刊的某一期,并提取该期收录论文的清单。
- 提取字段包括:序号、论文标题、作者(分号分隔)、页码范围。
- 获取该期的“原版目录”链接,并支持打开阅读页与触发 PDF 下载。
- 未指定年份时,默认展示最新一期(网络首发)。
参数
$ARGUMENTS 用于描述要浏览的内容:
- {journal name} —— 期刊名称
- {year}(可选)—— 年份,默认最新
- {issue}(可选)—— 期号
- download(可选)—— 若包含该项,则下载原版目录 PDF
示例:
- 计算机学报 2026 01期 —— 浏览 2026 年第 1 期
- 计算机学报 2026 01期 download —— 下载原版目录 PDF
- 计算机学报 —— 展示最新一期(网络首发)
使用方式
1. 进入期刊详情页
如果当前不在期刊详情页(navi.cnki.net/knavi/detail):
- 使用 cnki-journal-search 查找该期刊。
- 使用 mcp__chrome-devtools__list_pages 与 mcp__chrome-devtools__select_page 切换到期刊详情标签页(在新标签中打开)。
2. 选择期号并提取论文(单次异步 evaluate_script)
将脚本中的 YEAR 与 ISSUE 替换为实际值(如 "2025"、"No.01")。 “刊期浏览”标签为默认激活视图,无需点击。
async () => {
const year = "YEAR";
const issue = "ISSUE"; // Format: "No.01", "No.12", etc.
const dls = document.querySelectorAll('#yearissue0 dl.s-dataList');
let target = null;
for (const dl of dls) {
if (dl.querySelector('dt')?.innerText?.trim() === year) {
target = Array.from(dl.querySelectorAll('dd a')).find(a => a.innerText.trim() === issue);
break;
}
}
if (!target) {
// Return available years and issues for the requested year
const available = Array.from(dls).map(dl => ({
year: dl.querySelector('dt')?.innerText?.trim(),
issues: Array.from(dl.querySelectorAll('dd a')).map(a => a.innerText.trim())
})).filter(y => y.year);
return { error: 'issue_not_found', year, issue, available: available.slice(0, 5) };
}
target.click();
// Wait for paper list to load
await new Promise((r, j) => {
let n = 0;
const c = () => {
const rows = document.querySelectorAll('#CataLogContent dd.row');
if (rows.length > 0) r();
else if (++n > 30) j('timeout');
else setTimeout(c, 500);
};
setTimeout(c, 1000);
});
// Extract papers
const rows = document.querySelectorAll('#CataLogContent dd.row');
const papers = Array.from(rows).map((dd, i) => ({
no: i + 1,
title: dd.querySelector('span.name a')?.innerText?.trim(),
authors: dd.querySelector('span.author')?.innerText?.trim()?.replace(/;$/, ''),
pages: dd.querySelector('span.company')?.innerText?.trim()
}));
// Get 原版目录 URL
const tocBtn = document.querySelector('a.btn-preview:not(.btn-back)');
return {
issueLabel: document.querySelector('span.date-list')?.innerText?.trim(),
paperCount: papers.length,
papers,
tocUrl: tocBtn?.href || null,
url: location.href
};
}
3. 展示结果
## {journal_name} — {issueLabel}
共 {paperCount} 篇论文:
1. {title} [pp. {pages}]
作者:{authors}
2. {title} [pp. {pages}]
作者:{authors}
...
4. 下载原版目录 PDF(如请求)
如果用户请求下载,或要求“原版目录”:
方法 A —— 点击“原版目录浏览”打开阅读器后下载:
- 在快照中找到文本为“原版目录浏览”的链接(class btn-preview)。
- 点击它——会在新标签中打开阅读页(kns.cnki.net/reader/report)。
- 使用 mcp__chrome-devtools__list_pages 找到新的阅读器标签页。
- 使用 mcp__chrome-devtools__select_page 切换到该标签页。
- 使用 mcp__chrome-devtools__wait_for 等待文本 ["下载"]。
- 截取快照——找到文本为“下载”的链接(阅读器工具栏中的下载按钮)。
- 点击该下载链接——通过 Chrome 触发 PDF 下载。
方法 B —— 从阅读页直接下载:
如果已在阅读页(kns.cnki.net/reader/report):
- 截取快照。
- 找到文本为“下载”的链接。
- 点击它。
点击后,告知用户:
原版目录 PDF 下载已触发,请在 Chrome 下载管理器中查看。
工具调用
- 浏览期号:1 次(仅 evaluate_script)——在导航到期刊页之后。
- 下载目录:需要快照 + 点击 + 切换标签页(新标签页)。
已验证的选择器
期刊详情页 —— 刊期浏览:
| 元素 | 选择器 | 备注 |
|---|---|---|
| 刊期浏览 tab | a text "刊期浏览" | 默认激活(li.on.cur),无需点击 |
| 年份区域 | #yearissue0 / .yearissuepage | |
| 年份分组 | dl.s-dataList | 位于 #yearissue0 内 |
| 年份标签 | dl.s-dataList dt | 文本如 "2026"、"2025" 等 |
| 期号链接 | dl.s-dataList dd a | 文本如 "No.01"、"No.12" 等 |
| 期号标签 | span.date-list | 文本如 "2025年01期" |
| 论文容器 | #CataLogContent | |
| 论文条目 | #CataLogContent dd.row | |
| 论文标题 | dd.row span.name a | href 指向 kcms2/article/abstract |
| 论文作者 | dd.row span.author | 分号分隔 |
| 论文页码范围 | dd.row span.company | class 名为 "company",但存放页码范围 |
| 论文 ID | dd.row b[name="encrypt"] | id 形如 "JSJX202512001" |
| 原版目录浏览 | a.btn-preview:not(.btn-back) | href 指向 bar.cnki.net/bar/download/order |
| 返回 | a.btn-preview.btn-back |
阅读页(kns.cnki.net/reader/report):
| 元素 | 模式 |
|---|---|
| 页面标题 | RootWebArea "期刊原版目录" |
| 下载按钮 | 链接文本 "下载",URL 指向 bar.cnki.net/bar/download/order |
| 当前页 | textbox 值(页码) |
| 总页数 | StaticText(如 "4") |
| 导航 | generic description "上一页" / "下一页" |
注意事项
- “原版目录浏览”仅在选定具体期号后出现(网络首发视图下不出现)。
- 阅读页在新标签中打开。
- 阅读页中的下载链接需要登录。如果下载失败,提醒用户登录。
- 下载 URL 为会话级——请勿缓存或复用。
适用场景
- 需要查看某期刊某年某期收录了哪些论文。
- 需要提取该期论文清单(标题、作者、页码)用于整理或记录。
- 需要获取该期的原版目录 PDF(封面 + 目录扫描版)。
限制
- 依赖知网(CNKI)页面结构,选择器基于当前已验证页面。
- 原版目录下载需登录知网账号;下载链接为会话级,不可缓存或复用。
- “原版目录浏览”仅在选定具体期号后可用,网络首发视图下不提供。
- 其他未在资料中说明的限制暂未提供。