上篇文章 bib-cather 01 | 批量下载所有论文文末引用文献 简单介绍了 bib-catcher 的基本背景和最简单的功能。这次再介绍一下我在自己使用过程中为了“满足一己私欲”又整的一些小活。

Github: https://github.com/Benature/bib-catcher


  • 颜即是正义
  • 检索优化
    • 文献网址/doi自动下载引用文献
    • 使用 cookie 暴力下载
    • 链接提取
    • 跳过历史失败
  • 从纯文本引用到双链引用(以Obsidian为例)
    • 命令行使用
    • Obsidian 配合插件 Text Format 使用文献图谱

       

颜即是正义

通过自定义print打印的颜色、样式,可以让输出所见更丰富多彩,也能突出重点(比如哪些文献是搜索失败了)。不过总归是“面子工程”,做这个主要只是为了好玩好看。

图片


如果对如何在命令行“彩打”感兴趣的,可以参考我整理的一个 gist

检索优化

文献网址/doi自动下载引用文献

原有的方法需要手动复制引用文献列表,这种无脑的 dirty work 当然希望能省就省。根据 doi 可以跳转至文献网站,一些期刊、会议的网站会直接提供引用文献的文本或者 bib 文件,可以帮助我们省略手动复制的繁琐工序。但该功能的短板在于,每个网站都要分别写好处理流程,网站改版可能还会导致自动下载失效。(广告位招租,欢迎PR)

使用 cookie 暴力下载

谷歌学术的反爬还是很严格的,虽然个人使用下访问量不大,但还是有概率被拉近小黑屋关一会。默认的爬取方式是无登陆状态的,“关小黑屋”后可以换成有登陆状态,就可以继续下载而不用等CD了。不过风险就未知了,下太猛说不定会被封号?以防万一我都是停个好几秒再搜一篇文献。

使用暴力下载需要在仓库目录的 config.yaml 文件写入

cookieScholar: xxxxx

引用在谷歌学术搜索不到,多半是因为它就不是文章,而是博客或者其他什么网址。用正则表达式提取链接,如果长度比较短的话再访问下链接看看是不是短链,是的话换成原链比较直观。

图片

跳过历史失败

比如综述的文献量比较大,有时候运行过程会中断啥的,开了 -i 之后可以跳过之前已知抓取失败的引用,节省一点时间。

图片

从纯文本引用到双链引用(以Obsidian为例)

文献抓下来可不是就这么放着了,放到 zotero 里也不是单供着,当然是要看的。既然会看,那就多少会做点文献笔记。我个人是使用 Obsidian 做文献笔记,插件用的是已经被时代淘汰但两年前却是实打实的主流的 Citations(悲)。

对于文献的 markdown 笔记,文件名统一按照 @citekey.md 的格式。那么自然,对于某文献的双链引用就是 [[@citekey]] 的格式。我所希望做到的就是将原本的引用序号转换为双链引用,比如下图。

图片
纯文本引用转换为双链引用

如此,我在阅读文献笔记时可以快速跳转/预览其中提到的某篇文献。同时图谱会瞬间“炸开花”(尤其是综述文献)。

图片


同时,程序对于未创建的文献笔记,会根据插件配置中的模板自动创建,避免一点开文件发现空空如也的尴尬。最后,叮咚一下出个弹窗,告诉我文献笔记的创建情况。

图片
检测文献笔记是否创建

对于有缩写名的文献也做了一些优化,直接把缩写名和双链引用合并,更加直观。

图片
具有缩写名的文献优化前后对比

命令行使用

最通用的使用方式是在命令行

python converter.py <citekey>

参数 citekey 是可选的,如果不写则默认读取最近 catch 的那篇文献。运行后将需要转换的文本黏贴并回车两次即可得到结果,结果会自动进入剪贴板中,直接去黏贴就好了。

图片

Obsidian 配合插件 Text Format

命令行使用一方面一次只能指定一篇文章,而且需要切换应用复制黏贴(PDF-命令行-笔记)。为了更好地集成在 Obsidian 中使用,我在我的其中一个插件 Text Format 新增了个 API Request 的功能。

图片
Obsidian 插件:Text Format

首先运行 python api.py 启动 Flask 服务,在 Text Format 设置的 API Request 部分添加「命令名」和「API链接」。我图方便所以就在本地跑了,端口用的7070,链接为http://127.0.0.1:7070/obsidian,命令名可以随便起。

图片
Obsidian 设置 - Text Format - API Request

在命令面板(ctrl/cmd+P 快捷键呼出)输入 API 即可看到自定义的命令,甚至可以自己配置快捷键。

图片

同样,插件在文本处理后也会弹出一个通知,报告转换情况。

图片

文献图谱

展示抓取的文献的引用关系,主要还是图个乐子。用处大概也就局限于看看有哪些文献是被多处引用的。

图片
5
2