为从知网下载的学位论文快速挂上书签。
后续考虑独立从知网下载 pdf,然后自动挂上书签。
- Windows 系统
- Acaconda(Python 3 version)。要求 python 相关路径已被添加到环境变量中。(如果不怕麻烦,也可以安装 Python 3 和其他必要的包)
- Chrome
- Tampermonkey(Chrome 插件)
- CNKI 中国知网 PDF 全文下载(Tampermonkey 脚本)
- 知网新平台
- 从知网下载 pdf 文件到某目录。具体下载方法见CNKI PDF 全文下载用户脚本 | YUE’s Notes。
- 可选:AutoHotkey
多种使用方法,对应不同需求。
以下部分的所有代码中, <path_to_the_script>
是 cnki_bookmark_pdf.py
脚本所在的目录路径, <path_to_the_pdf>
是下载到的 pdf 所在的文件目录(不能以反斜杠结尾), <pdf_filename>
是下载到的 pdf 的文件名(带后缀), <url_of_cnki_paper>
是当前论文的知网页面的网址,从浏览器地址栏复制即可。 所有本地路径的连接符可以使用斜杠,也可以使用反斜杠,但若使用反斜杠,路径结尾的反斜杠连接符必须省略。
也可以把最后的 “<url_of_cnki_paper>” 去掉,直接把 url 复制到剪贴板。
python "<path_to_the_script>/cnki_bookmark_pdf.py" "<path_to_the_pdf>/<pdf_filename>" "<url_of_cnki_paper>"
要求下载的 pdf 文件是其所在目录中最新的 pdf 文件,不要求是所有文件中最新的,但要求是最新的10个文件之一。也可以把最后的 “<url_of_cnki_paper>” 去掉,直接把 url 复制到剪贴板。
python "<path_to_the_script>/cnki_bookmark_pdf.py" "<path_to_the_pdf>" "<url_of_cnki_paper>"
使用时,要求基本上所有下载论文的 pdf 文件都放在同一目录,且下载的 pdf 文件是其所在目录中最新的 pdf 文件,不要求是所有文件中最新的,但要求是最新的10个文件之一。且知网文章页面的 url 复制到剪贴板中。
在脚本所在目录新建文件 run_cnki.sh
,输入以下内容:
#!/bin/bash
python $(dirname $(readlink -f ${BASH_SOURCE[0]}))\\cnki_bookmark_pdf.py "<path_to_the_pdf>"
然后把 run_cnki.sh
文件的快捷方式放到桌面上,需要使用的时候点击一下即可。
要求安装 AutoHotkey,且自己会用 AutoHotkey 的基本功能。
使用时,要求基本上所有下载论文的 pdf 文件都放在同一目录,且下载的 pdf 文件是其所在目录中最新的 pdf 文件,不要求是所有文件中最新的,但要求是最新的10个文件之一。且知网文章页面的 url 复制到剪贴板中。
在 .ahk
文件中添加以下内容。
#!c:: Run, python cnki_bookmark_pdf.py "<path_to_the_pdf>", <path_to_the_script>, Hide UseErrorLevel if ErrorLevel = ERROR MsgBox The python script could not be executed. return
运行 ahk 文件。
此时,只需按全局快捷键 Alt+Win+C,即可实现相应功能。可以自行修改快捷键。
在命令行中,执行下面命令,即可自动添加书签到下载得到的 pdf 文件中。
python "<path_to_the_script>/cnki_bookmark_pdf.py" "<path_to_the_pdf>/<pdf_filename>" "<url_of_cnki_paper>"
例如,我的脚本所在路径是 D:\MyDocuments\MyGitProject\cnki_bookmark_pdf\
,下载的 pdf 文件存放在 G:\IDMDownload\
,下载的 pdf 文件名是 测试用的文件.pdf
,知网的页面地址是 http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&dbname=CMFD201502&filename=1015609600.nh&uid=WEEvREcwSlJHSldRa1Fhb09jMjQxYzJycnE2eURtQWMzREdKZ010ZjlWND0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=Mjg4NTFyRnl2Z1dydkxWRjI2RzdXNEY5Zk1yNUViUElSOGVYMUx1eFlTN0RoMVQzcVRyV00xRnJDVVJMMmZZT1I=
,那么我需要执行的命令如下。
python "D:/MyDocuments/MyGitProject/cnki_bookmark_pdf/cnki_bookmark_pdf.py" "G:/IDMDownload/测试用的文件.pdf" "http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&dbname=CMFD201502&filename=1015609600.nh&uid=WEEvREcwSlJHSldRa1Fhb09jMjQxYzJycnE2eURtQWMzREdKZ010ZjlWND0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=Mjg4NTFyRnl2Z1dydkxWRjI2RzdXNEY5Zk1yNUViUElSOGVYMUx1eFlTN0RoMVQzcVRyV00xRnJDVVJMMmZZT1I="
Windows 系统的命令行中可能不允许出现这么长的命令,这时可以直接把知网文章的 url 复制到剪贴板中,然后执行下面命令。
python "<path_to_the_script>/cnki_bookmark_pdf.py" "<path_to_the_pdf>/<pdf_filename>"
例如,对于我的场景,需要做的就是把文章 url 复制到剪贴板,然后执行下面的命令。
python "D:/MyDocuments/MyGitProject/cnki_bookmark_pdf/cnki_bookmark_pdf.py" "G:/IDMDownload/测试用的文件.pdf"
运行结束后,在 pdf 存放的文件夹会出现原 pdf 文件名加“_out”的 pdf 文件。如对于我的场景,得到的文件名就是“测试用的文件_out.pdf”。