该篇记录了本科毕设过程中,文献元数据及其PDF批量采集策略的探索过程。
前置条件
- 圈定采集范围,即检索式(如知网:
SU=('沉积相' + '古地理') AND YE>=1980 AND (FT='研究论文' + '综述')) - 确保当前设备(IP)在数字图书馆服务范围内(如校园网),能够访问相关文献数据库
第一阶段:文献元数据采集
文献来源1:知网
知网作为反爬措施较为严密的网站代表,传统爬虫很难适应。这里采用折中的RPA(办公自动化)工具模拟人工操作,达到快速爬取的目的
使用八爪鱼RPA工具,模拟人工操作,批量导出文献数据。注意到:
- 知网最多支持一次导出500条
- 每页最多显示50条
因此每轮使用RPA工具模拟翻页10次,然后导出全选导出所有元数据,依次进行。每轮开始前,需要配置如下:
- edge浏览器打开知网,使用检索式检索得到对应条目
- 设置当前页面显示条目数为50
- 运行下列RPA程序:https://rpa.bazhuayu.com/shareableLink/691ff8f98e82c3ce7b139a35?ref=5Q4ThY
- 每轮结束后,移动到下一页重复上述流程
文献来源2:Web of Science
对于Web Of Science,操作同上:运行下列RPA程序 https://rpa.bazhuayu.com/shareableLink/69200ebe8e82c3ce7b139d80?ref=5Q4ThY
数据清洗
去重筛选,得到含有完整doi的记录,从而确定需要爬取文献原文的列表
第二阶段:文献原文采集
文献来源1:知网
对于文献PDF下载,知网有以下常见的反爬机制(按出现频率排序):
- 人机验证:每20条下载时,触发一次滑块验证(图A)
- 异常下载提示:点击下载按钮时出现“对不起,您的操作太过频繁!请退出后重新登录”(图B)
- 异常操作
主要是滑块验证无法程序模拟破解,因此仍需要人工拖动滑块。RPA程序的思路是:模拟人工点击下载,当遇到上述情况时暂停程序
前置配置
- 下载管理:配置浏览器的默认下载位置,将所有下载的文献保存在一个单独的文件夹(确保内存足够),建议使用Free Download Manager而非浏览器默认下载
- 配置检索式:知网→高级检索→专业检索输入检索式后得到检索结果,翻页到对应位置
文献来源2:Web of Science
WoS中筛选出的文献来源方多。经尝试,以下路径各自存在不同的限制:
- 模拟人工点击下载——各家反爬措施不同,大多会触发机器人验证而锁ip
- 从SciHub获取——由于Elsevier等出版方的新文献在其中没有开源更新,大部分所需文献都下载不到
- 导入EndNote后一键解析下载——只能下载部分OA文献
因此,需要混合策略。以我个人毕设的文献采集需求为例,需采的9000余条WoS文献出版方来源如下图:
Elsevier占最大头。从此出发,我们发现ELsevier提供API以下载文献(详见Elsevier开发者中心),因此希望以此为突破口,解决大部分文献的原文采集问题。总体思路:
- 首先进行DOI补全,确保所有待采文献有完整DOI
- 根据DOI,逐条匹配文献的来源方
- 根据来源方,判断其是否在学校资源范围内
- 若是:使用API调用下载原文
- 若否:尝试从SciHub获取等其他策略
实际操作时:采用API调用能够获取大多数。剩余的从SciHub几乎很少能补充,而只能通过手动采集的方式补充。本科毕设采用此流程时的实际操作流程如下:

为防止机器人刷评,请输入验证码~
验证码可能加载较慢,请耐心等待 | 点击图片可刷新验证码