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

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

1. 背景

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

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

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

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

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

2. 项目目标

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

核心目标包括:

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

本次实际运行中,最终筛出 273 篇博士论文候选,并读取了前 80 篇高相关论文摘要。

3. 用到的技术和工具

3.1 编程环境

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

text 复制代码
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 浏览器访问不友好,容易返回:

text 复制代码
HTTP ERROR 403

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

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

text 复制代码
多模态 空间数据 融合
空间信息智能化

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

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

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

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

5.1 环境诊断

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

原来的 ChromeDriver 是:

text 复制代码
ChromeDriver 142

本机 Chrome 是:

text 复制代码
Chrome 148

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

5.2 发现 headless 不可用

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

text 复制代码
headless Chrome -> 403
visible Chrome -> 可以打开知网

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

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

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

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

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

5.4 构建多组合关键词计划

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

例如:

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

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

5.5 实现本地相关性打分

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

正向加分词包括:

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

负向扣分词包括:

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

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

5.6 执行、监控和整理结果

Codex 还负责:

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

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

6. 最终流程

整个流程可以概括为:

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

7. 高相关是怎么判断的

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

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

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

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

text 复制代码
遥感 +8
语义分割 +7
小样本 +8
高分辨率 +4

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

如果题名中出现:

text 复制代码
医学
金融
化工
就业

则会扣分。

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

8. 本次输出结果

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

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

代码目录:

text 复制代码
D:\pythonpj\gkdeeplearning\ChromeDriver下载\code

结果目录:

text 复制代码
D:\pythonpj\gkdeeplearning\ChromeDriver下载\results-out\cnki_doctoral_opening_research_20260602_154854

其中包括:

text 复制代码
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. 当前不足和下一步优化

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

下一步可以优化为:

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

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

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

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

13. 总结

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

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

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

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

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

相关推荐
V搜xhliang02461 小时前
告别SPSS卡顿:用AI智能体自动跑回归、生存曲线、生成方法学段落
运维·人工智能·数据挖掘·回归·机器人·自动化·飞书
废弃的小码农2 小时前
APP测试--adb使用介绍
python·测试工具·adb
Jumbuck_103 小时前
从零实现《三角洲行动》手游自动跑刀脚本:ADB 直控 + OpenCV 视觉识别 + 固定点位搜刮)三角洲自动跑刀教程
嵌入式硬件·yolo·目标检测·自动化·自动驾驶·三角洲·自动跑刀
赛博云推-Twitter热门霸屏工具3 小时前
Twitter自动发推工具怎么选?从人工运营到自动化管理的实践分析
运维·自动化·twitter
紧固件研究社3 小时前
紧固件模具去哪选?2026上海紧固件展汇集全品类模具厂家
自动化·制造·紧固件
Black蜡笔小新3 小时前
自动化AI算法训练服务器DLTM零代码私有化部署筑牢企业AI落地根基
人工智能·算法·自动化
Land03294 小时前
RPA 实现 Excel 自动化实操教程:批量数据处理零基础落地指南
自动化·excel·rpa
STDD4 小时前
Gitea Actions Runner 搭建指南:为 Gitea 添加 CI/CD 自动化执行器
ci/cd·自动化·gitea
三千花灯4 小时前
【Playwright】安装
人工智能·测试工具