知网论文自动检索与 PDF 下载
适用范围
用于 Codex 在用户已经具备知网访问权限的前提下,完成中国知网论文搜集和 PDF 下载。该 skill 面向批量任务:先围绕研究主题检索并建立候选清单,再按论文题名或详情页逐篇回查,进入详情页点击 PDF下载,最后把下载文件移动到目标目录并输出成功、跳过和失败清单。
如果用户只要求检索结果,可只执行检索与候选清单步骤。如果用户要求下载,默认只下载 PDF;没有 PDF 链接、学校未购买、需要付费、无法授权或只有 CAJ 时,跳过并记录,不下载 CAJ,除非用户明确允许 CAJ。
工具与环境依赖
- 浏览器:本机 Chrome 或 Edge,必须是用户可见、可手动操作的浏览器会话。
- 浏览器自动化:Chrome DevTools MCP,常用工具包括
list_pages、select_page、new_page、navigate_page、evaluate_script、take_snapshot。如果这些工具未加载,先通过可用工具发现或要求用户重启 Codex 加载chrome-devtoolsMCP。 - 知网权限:用户自行完成账号登录、学校认证、机构代理、付费确认和验证码。不得索取或导出密码、Cookie、Token、浏览器配置文件。
- 本地文件:需要能读取浏览器下载目录,并能把当前任务中新产生的 PDF 移动到用户指定输出目录。
- 可选辅助:Python 3.10+ 可运行
scripts/cnki_manifest_tools.py,用于候选去重、队列生成、下载文件匹配和 manifest 输出;不依赖第三方包。
安全边界
- 不绕过知网登录、验证码、机构权限、付费墙或下载限制。
- 不构造或批量请求隐藏文件直链;下载动作必须通过页面上的真实下载入口触发。
- 遇到 Tencent 滑块验证码时立即停下,让用户在浏览器里手动完成。
- 批量下载逐篇处理,并设置短间隔,避免快速连续搜索、翻页或点击。
- 不删除用户已有文件。若 PDF-only 任务误下 CAJ,只记录或移动到用户指定隔离目录。
默认策略
- 下载格式:
pdf_only=true。 - 操作节奏:每次检索、打开详情页、点击下载之间等待 2.5-6 秒;验证码、登录、下载完成等待可更长。
- 下载路径:优先使用用户指定目录;否则在当前工作区创建
cnki_papers/、cnki_work/、cnki_manifests/。 - 下载方式:不要点击检索结果页的“下载”按钮,因为它经常默认下载 CAJ。必须进入论文详情页,使用
#pdfDown或.btn-dlpdf a触发 PDF。 - 题名回查:对批量下载,优先用候选结果中的详情页 URL;若详情页失效、跳转异常或需要重新定位,则按论文题名精确检索后进入详情页。
工作流程
明确任务参数
- 记录研究主题、关键词组、目标篇数、输出目录、是否只要 PDF、是否允许硕博论文、是否需要核心/CSSCI/北大核心等筛选。
- 若用户指定“不要 CAJ”或没有说明格式,一律按 PDF-only 执行。
准备目录和任务时间
- 创建输出目录、工作目录和 manifest 目录。
- 记录任务开始时间,用于识别浏览器下载目录中新产生的文件。
- 如果使用辅助脚本,后续把所有结果写入 JSON/CSV manifest。
广泛检索并收集候选
- 围绕主题做多轮关键词检索,而不是只搜一个词。可组合研究对象、地域、人物、信仰、神话、传说、庙祠、民俗、地方志、治水工程等词。
- 每轮使用 CNKI 检索页
https://kns.cnki.net/kns8s/search,填入input.search-input,点击input.search-btn。 - 从
.result-table-list tbody tr抽取题名、作者、来源、日期、引用、下载和详情页 URL。 - 结果写入
cnki_search_results.json,不要边搜边无计划下载。
去重、择优和排队
- 按规范化题名去重;同题多条保留详情页 URL、来源级别、日期和下载引用信息更完整的一条。
- 结合关键词命中、来源质量、引用/下载量、题名相关度和用户目标筛选下载队列。
- 输出
cnki_download_queue.json,每条至少包含title、authors、source、date、href、status=pending。
逐篇打开详情页并触发 PDF
- 对队列逐条处理,每篇之间等待短间隔。
- 优先
navigate_page到href;必要时按题名精确回查。 - 详情页加载后等待
.brief h1,检查滑块验证码和登录状态。 - 查找
#pdfDown或.btn-dlpdf a。存在 PDF 链接时,模拟真实点击;不存在时记录skipped_no_pdf。 - 若出现未登录、机构无权限、支付提示、下载超时或验证码,记录明确状态。验证码和登录问题需要停下等待用户处理。
等待下载并归档
- 观察浏览器下载目录,等待
.crdownload消失并出现新的.pdf。 - 把当前任务中新产生的 PDF 移动到用户指定输出目录,文件名优先使用论文题名和作者。
- 对未匹配到题名的 PDF,保留原文件名并在 manifest 中标记
unmatched_pdf,后续人工核对。
- 观察浏览器下载目录,等待
输出验收结果
- 汇总已下载 PDF、跳过项、失败项、需要用户手动处理项。
- 生成
cnki_download_manifest.json/csv和cnki_problem_downloads.md。 - 只有确认文件已经落盘并完成移动,才向用户报告“已下载”。
关键页面规则
详细浏览器脚本、选择器和异常判断见:
references/browser-workflow.mdreferences/output-schema.md
辅助脚本:
scripts/cnki_manifest_tools.py
交付口径
最终回复应说明:检索了哪些关键词、候选和队列数量、成功下载 PDF 数量、输出目录、问题清单路径,以及是否存在需要用户登录、认证或手动补下的论文。不要在回复中暴露 Cookie、账号信息或任何敏感浏览器会话数据。