油猴插件:几分钟学会编写插件通过DOI快速下载文献pdf

发布于:2022-12-26 ⋅ 阅读:(2131) ⋅ 点赞:(2)

最近在SCIHUB上下载文献,发现一个比较烦恼的问题:需要先在文献检索的网站上找到所需文献的DOI,再将DOI复制到SCIHUB才能下载。

因此作者尝试通过油猴插件来实现在任意文献检索网站(只要能显示DOI即可)快速跳转到SCIHUB进行下载PDF的目的。

首先在任意一个文献检索网站(这里以IEEE为例)找一篇文献

https://ieeexplore.ieee.org/document/5431217/

可以获得它的DOI为:10.1109/IEEESTD.2009.5431217 

 将其复制到SCIHUB,获得了如下的网址。可以看到,网址的结构就是sci-hub.se/+DOI的组合。

https://sci-hub.se/10.1109/IEEESTD.2009.5431217

 现在我们来编写脚本。

以百度学术为例,在页面中虽然有显示下载途径,但是需要跳转到对应网站,才能进行下载,而且还会有可能要求登录账号。

 先展示编写好后的效果,点击DOI后直接跳转到对应的PDF页面:

 教程开始:

右键DOI的位置,点击检查

然后可以在右侧的开发者工具中看到这一行

那么我们在控制台发送命令

document.querySelector("div.doi_wr p.kw_main")

 会获得如下结果:

<p class=​"kw_main" data-click=​"{'button_tp':​'doi'}​">​ 10.1063/1.2437069 ​</p>​

证明我们选择器正确,接下来我们修改该p标签下的内容,使其变成如下内容。这样DOI就可以变成超链接直接指向我们需要的文献pdf链接了。

<p class=​"kw_main" data-click=​"{'button_tp':​'doi'}​">​ <a href="https://sci-hub.se/10.1063/1.2437069">10.1063/1.2437069<\a> ​</p>​

接下来编写脚本代码:

// ==UserScript==
// @name         快速下载文献
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://xueshu.baidu.com/usercenter/paper/*
// @icon         https://www.google.com/s2/favicons?domain=baidu.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    //选择器获取DOI位置
    var DOI_Text = document.querySelector("div.doi_wr p.kw_main");
    //获取DOI的id
    var DOI_id = DOI_Text.innerText;
    //生成下载链接
    var DOI_download = "https://sci-hub.se/"+DOI_id;
    //调试输出
    console.log(DOI_download)
    //重写p标签内容
    DOI_Text.innerHTML = `<a href="`+DOI_download+`" title="点击我跳转到下载页面">`+DOI_id+`<\a>`

})();

保存后,重写刷新页面,即可看到DOI后面的字已经变成了蓝色的超链接,并可以点击。

(注:有些时候SCIHUB没有对应资源,只能另寻他法去下文献了)

其他任何能够显示文献DOI的检索网站也同理,通过相似的方法,也可以设计出对应网站的插件,方便自己下载。 

至于如何下载和安装油猴插件,有很多相关的帖子,就不赘述了。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到