基于 Codex + Selenium 的 CNKI 博士论文开题调研自动化流程

1. 背景

博士开题调研最麻烦的地方,不是“找几篇论文”,而是要在一个较大的文献池里系统判断:

  • 近五年这个方向到底有哪些博士论文?
  • 主流研究分支是什么?
  • 技术路线怎么演进?
  • 哪些问题已经被大量研究?
  • 哪些问题还存在明显短板?
  • 自己的博士选题可以从哪里切入?

本次任务聚焦的是 2021-2026 年中国知网博士学位论文,主题包括:

  • 空间信息智能化
  • 地理空间智能 GeoAI
  • 遥感智能解译
  • 时空智能建模
  • 多模态空间数据融合
  • 小样本 / 弱监督空间学习
  • 跨区域泛化
  • 复杂破碎场景精细解译
  • 模型可解释性
  • 轻量化工程落地

如果完全手工检索,需要不断换关键词、翻结果页、打开论文详情、复制摘要、再做分类归纳,效率很低,而且过程不可复现。因此这里做了一套半自动化文献筛选和摘要读取流程。

2. 项目目标

本项目的目标不是简单地“爬知网”,而是服务于博士开题调研,构建一个可复现的文献筛选流程。

核心目标包括:

  1. 基于 CNKI 博士学位论文库筛选近五年相关论文。
  2. 通过多组合关键词构建候选论文池。
  3. 对候选论文进行本地相关性打分。
  4. 只读取高相关论文摘要,避免盲目逐篇打开。
  5. 输出结构化结果,便于后续写开题综述。
  6. 归纳研究体系、热点趋势、短板和创新切入点。

本次实际运行中,最终筛出 273 篇博士论文候选,并读取了前 80 篇高相关论文摘要。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 用到的技术和工具

3.1 编程环境

本次使用 Python 作为核心语言,运行环境为 conda 环境:

gkpytorch

使用 Chrome + ChromeDriver 驱动知网页面访问。

3.2 核心 Python 库

作用
selenium 驱动 Chrome 浏览器访问知网,解决普通请求容易 403 的问题
requests 在有 Cookie 的情况下尝试快速请求论文详情页
BeautifulSoup 解析 HTML 页面文本
pandas 整理候选论文表、摘要表,输出 CSV
argparse 支持命令行参数,方便控制候选模式、摘要数量、页数等
json/jsonl/csv 保存结构化数据
pathlib 管理本地路径
hashlib 给详情页生成缓存文件名
dataclasses 定义候选论文和摘要记录的数据结构

3.3 外部工具

工具 作用
ChromeDriver 连接 Python Selenium 和 Chrome 浏览器
Chrome 可见浏览器 访问知网,保留登录态
PowerShell 启动脚本、整理文件、监控日志
Codex 负责设计流程、写代码、调试、执行、整理结果和总结思路

4. 为什么不能直接用普通爬虫

一开始尝试过普通请求和简单 Selenium 抓取,但很快发现几个问题。

第一,知网对普通 HTTP 请求和 headless 浏览器访问不友好,容易返回:

HTTP ERROR 403

第二,如果用 Selenium 可见浏览器逐篇打开论文详情页,虽然能读到摘要,但速度很慢。每篇论文打开、等待、解析大概需要几秒钟,数百篇论文会非常耗时。

第三,关键词如果设置得太宽,比如:

多模态 空间数据 融合
空间信息智能化

会混入大量非目标领域论文,例如工业调度、医学影像、情绪识别、金融分析等。

所以,单纯“能打开网页”不够,必须重新设计流程。

5. Codex 在这里发挥了什么作用

这次 Codex 不只是写了一段 Selenium 代码,而是参与了完整的研发过程。

5.1 环境诊断

最开始用户提供了 ChromeDriver 路径,但本机 Chrome 版本和 ChromeDriver 版本不匹配。

原来的 ChromeDriver 是:

ChromeDriver 142

本机 Chrome 是:

Chrome 148

所以 Selenium 无法启动。Codex 识别到版本不匹配后,下载了匹配的 ChromeDriver 148,并把脚本默认路径改到新版 driver。

5.2 发现 headless 不可用

脚本最初尝试 headless 模式,但知网页面直接返回 403。Codex 通过测试确认:

headless Chrome -> 403
visible Chrome -> 可以打开知网

因此后续采用可见 Chrome + 独立浏览器 profile 的方式,保证知网访问稳定。

5.3 从“慢爬虫”改成“两阶段流程”

最初的做法是边搜索边打开详情页读摘要,结果太慢,而且搜索结果不准。用户指出“这样抓取不是个事”,Codex 重新设计了流程:

先筛候选题录 -> 本地打分 -> 只读取高相关摘要

这个改动是整个方案的关键。

5.4 构建多组合关键词计划

Codex 将检索词拆成多个研究分支,而不是只用一个大词搜索。

例如:

遥感 智能解译
遥感影像 语义分割
遥感 变化检测 深度学习
多源遥感 数据融合
光学 SAR 融合
小样本 遥感
弱监督 遥感
域适应 遥感
复杂场景 遥感 目标检测
遥感 基础模型

这样比单一关键词更系统,也能覆盖不同技术分支。

5.5 实现本地相关性打分

Codex 写了相关性评分逻辑,根据题名、命中关键词和研究分支判断是否高相关。

正向加分词包括:

遥感、地理空间、GeoAI、时空、智能解译、语义分割、目标检测、变化检测、
多源、多模态、高光谱、SAR、LiDAR、小样本、弱监督、半监督、域适应、
泛化、可解释、轻量化、基础模型

负向扣分词包括:

医学、金融、就业、化工、热轧、生产调度、情绪、法律、教育

这样可以过滤一部分跑偏论文。

5.6 执行、监控和整理结果

Codex 还负责:

  • 执行候选筛选脚本
  • 监控后台进程
  • 读取日志
  • 检查候选数量
  • 读取摘要输出
  • 整理目录结构
  • 删除无用测试文件
  • 将代码和结果分开放置

最终形成了清晰的工程目录。

6. 最终流程

整个流程可以概括为:

1. 配置多组合关键词
2. Selenium 打开知网博士论文检索页
3. 抓取结果页题录
4. 按年份过滤 2021-2026
5. 按题名和作者去重
6. 根据关键词和研究分支打分
7. 排序生成候选池
8. 选取高分论文
9. 打开详情页读取摘要
10. 输出 CSV、JSONL、Markdown 笔记和初读报告

7. 高相关是怎么判断的

高相关不是人工主观判断,也不是大模型直接判断,而是一个可解释的规则打分系统。

每篇候选论文会生成一个分数:

相关性分数 =
正向关键词加分
+ 所属研究分支加分
- 跑偏领域关键词扣分

例如一篇论文题名中包含:

遥感 +8
语义分割 +7
小样本 +8
高分辨率 +4

如果它又来自 remote_interpretationfewshot_weak_domain 检索组,还会继续加分。

如果题名中出现:

医学
金融
化工
就业

则会扣分。

最后按分数排序,读取前若干篇摘要。本次读取的是前 80 篇。

8. 本次输出结果

最终整理后的目录结构如下:

D:\pythonpj\gkdeeplearning\ChromeDriver下载
├─ chrome-for-testing-148
├─ selenium_chrome_profile
├─ code
└─ results-out

代码目录:

D:\pythonpj\gkdeeplearning\ChromeDriver下载\code

结果目录:

D:\pythonpj\gkdeeplearning\ChromeDriver下载\results-out\cnki_doctoral_opening_research_20260602_154854

其中包括:

01_candidate_screening_multi_combo_20260602_154133
02_abstract_reading_top80_20260602_154854
logs

关键结果文件:

文件 内容
candidates_ranked.csv 273 篇候选博士论文及相关性分数
abstracts_selected.csv 80 篇高相关论文摘要
abstract_notes.md 摘要阅读笔记
opening_review_summary.md 本轮初读报告
logs 检索和摘要读取日志

9. 解决了什么问题

9.1 解决了手工筛文献效率低的问题

手工在知网中检索、翻页、打开论文、复制摘要非常耗时。自动化流程可以快速构建候选池,并将人工精力集中在高相关摘要阅读上。

9.2 解决了搜索关键词不系统的问题

单个关键词很容易漏文献。多组合关键词能覆盖多个研究分支,例如遥感解译、多模态融合、时空预测、小样本弱监督、跨域泛化等。

9.3 解决了结果跑偏的问题

通过正向加分和负向扣分,可以降低医学、金融、化工、管理等非目标领域论文混入的比例。

9.4 解决了过程不可复现的问题

所有关键词、候选结果、摘要结果和日志都被保存。后续可以继续增加关键词、增加页数、扩大摘要读取数量,而不是从头再来。

9.5 解决了“先读哪篇”的问题

不是盲目读所有论文,而是先按相关性排序,再优先阅读高分论文摘要。

10. 应用意义

这套流程可以用于:

  • 博士开题文献调研
  • 研究热点归纳
  • 技术路线演进分析
  • 学科交叉方向梳理
  • 基金选题预研
  • 论文综述写作
  • 研究空白识别
  • 创新点凝练

对于 GeoAI、遥感智能解译这类交叉方向尤其有意义。因为这些方向的论文不会只集中在一个关键词下,而是散落在遥感、测绘、地理、计算机、农业、生态、灾害、城市等多个领域中。

自动化流程可以帮助研究者从“凭感觉找论文”转向“有证据地构建文献池”。

11. 相比其他方法的优势

11.1 相比纯手工检索

手工检索灵活,但效率低、容易漏、过程不可复现。这个方案可以批量检索、批量整理、保留日志和结果。

11.2 相比普通爬虫

普通爬虫容易被知网拒绝,也容易盲目抓取。这个方案通过 Selenium 可见浏览器解决访问问题,并通过关键词计划和相关性打分控制质量。

11.3 相比搜索引擎检索

搜索引擎结果不稳定,而且不一定聚焦博士论文。这个方案直接面向 CNKI 博士学位论文库,更贴合博士开题调研。

11.4 相比一次性导出题录

导出题录只能得到基础信息。这个方案不仅能筛题录,还能进一步读取摘要,形成摘要库和阅读笔记。

11.5 相比直接让 AI 写综述

直接让 AI 写综述容易空泛。这个方案先构建真实论文摘要样本,再基于样本归纳热点和空白,更适合严肃开题。

12. 当前不足和下一步优化

当前高相关判断主要基于题名、命中关键词和检索分组,还没有对摘要全文做二次语义打分。因此仍可能混入少量边缘论文。

下一步可以优化为:

第一轮:题名和关键词打分
第二轮:摘要全文打分
第三轮:按研究分支自动归类
第四轮:生成正式综述提纲

还可以加入更细的分类标签:

多模态时空特征对齐
跨区域泛化
小样本学习
弱监督学习
复杂破碎场景
变化检测
目标检测
语义分割
可解释性
轻量化部署
GeoAI 时空建模

这样可以直接输出开题报告中的“研究现状、研究热点、存在问题、创新切入点”。

13. 总结

这次工作的核心不是写一个 Selenium 爬虫,而是把博士开题调研流程工程化。

Codex 在其中发挥了几个作用:

环境诊断
工具配置
脚本开发
流程重构
关键词设计
相关性打分
执行监控
结果整理
初步综述归纳

最终形成了一套可复现、可扩展、可继续优化的 CNKI 博士论文调研流程。

它的价值在于:把原本零散、重复、低效的文献检索工作,变成一个结构化的数据处理流程,为博士开题选题提供更稳定的前沿依据。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐