说明:

最近下载论文时 发现无法下载pdf,刚好在学JS,就一边学习一边编了一个脚本。代码很烂,功能基本符合预期。

v1.0功能:

当用户拥有Access权限时,生成dowload按钮,调用sciencedirect官方下载,下载文件名默认为文章名。

当用户没有Access权限时,调用scihub下载。

脚本地址:

https://greasyfork.org/zh-CN/scripts/451690-sciencedirect-download

v1.0脚本代码:

// ==UserScript==
// @name                ScienceDirect Download
// @name:zh-CN          ScienceDirect下载
// @namespace      tampermonkey.com
// @version        1.0
// @license MIT
// @description         Avoid jumping to online pdf, and directly download ScienceDirect literature to local
// @description:zh-CN   避免跳转在线pdf,可直接下载ScienceDirect文献到本地
// @match        *://www.sciencedirect.com/*
// @match        *://pdf.sciencedirectassets.com/*
// @grant        GM_setValue
// @grant        GM_getValue
// @run-at document-start
// ==/UserScript==
function getBlob(url, cb) {var xhr = new XMLHttpRequest();xhr.open('GET', url, true);xhr.responseType = 'blob';xhr.onload = function () {if (xhr.status === 200) {cb(xhr.response);}};xhr.send();
};
function saveAs(blob, filename) {if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(blob, filename);} else {var link = document.createElement('a');var body = document.querySelector('body');link.href = window.URL.createObjectURL(blob);link.download = filename;// fix Firefoxlink.style.display = 'none';body.appendChild(link);link.click();body.removeChild(link);window.URL.revokeObjectURL(link.href);}
}function download(url, filename) {getBlob(url, function (blob) {saveAs(blob, filename);});
}
(function () {'use strict';var domain = document.domain;if (domain == 'pdf.sciencedirectassets.com') {var url = document.URL + '&download=true';console.log(url);var title = document.URL.split("/")[5].split("-")[2];try {var id = document.URL.split("/")[5].split("-")[2]title = GM_getValue(id)} catch (err) {console.log("err_message" + err.message);}// var html_url = "https://www.sciencedirect.com/science/article/pii/" + document.URL.split("/")[5].split("-")[2]var ret = prompt('Type your filename and click confirm to download!', title);if (ret !== null && ret != '') {var filename = ret + '.pdf';download(url, filename);}}if (domain == 'www.sciencedirect.com') {document.addEventListener('DOMContentLoaded', (event) => {console.log('DOM加载完成.');var linkid = document.head.getElementsByTagName('meta')[0].content;var titile = document.title.replace(' - ScienceDirect', '');GM_setValue(linkid, titile);var access = document.querySelector("#mathjax-container > div.sticky-outer-wrapper > div > div.accessbar > ul > li:nth-child(1) > a").href.split('login')[1];var doi = document.getElementsByClassName('doi')[0].href.split('org')[1];GM_setValue('access', access);if (GM_getValue('access')) {var scihubs = ['http://sci-hub.ren', 'https://sci-hub.ru/', 'https://sci-hub.se/', 'https://sci-hub.ee/', 'https://sci-hub.shop/', 'https://sci-hub.ren/', 'https://sci-hub.st/'];var scihub = scihubs[Math.floor(Math.random() * scihubs.length)];new_url = scihub + doi;var ret = prompt('Type scihub address!', scihub);if (ret !== null && ret != '') {new_url = ret + doi;window.location.href = new_url} else { }} else {var new_url = "https://www.sciencedirect.com/science/article/pii/" + linkid + "/pdfft?isDTMRedir=true";console.log(new_url);let Container = document.createElement('div')Container.id = "sp-ac-container";Container.style.position = "fixed";Container.style.left = "250px";Container.style.top = "28px";Container.style['z-index'] = "2";Container.innerHTML = `<button title="Click to download" class="button1" id="download" οnclick="window.location.href='${new_url}'")>download</button><style>.button1 {-webkit-transition-duration: 0.4s;transition-duration: 0.4s;padding: 1.5px 6px;text-align: center;background-color: #f5f5f5;color: rgb(243, 109, 33);border: 0.5px rgb(134, 218, 209);border-radius: 9px;font-family: NexusSans,Arial,Helvetica,Lucida Sans Unicode,Microsoft Sans Serif,Segoe UI Symbol,STIXGeneral,Cambria Math,Arial Unicode MS,sans-serif!important;}.button1:hover {background-color: rgb(134, 218, 209);;;color: red;}</style>`;document.body.appendChild(Container);}});}
})()

v1.0脚本说明:

GM_setValue, GM_getValue使用油猴插件存储变量
@run-at document-start在页面加载前运行脚本
prompt() 函数用于弹出提示用户进行输入信息的文本框,其返回用户输入的字符串。

油猴脚本修改sciencedirect论文下载名相关推荐

  1. 自用chrome+油猴脚本,使用迅雷下载百度云大文件,一键离线下载

    油猴是有名的火狐浏览器插件(Greasemonkey),当然也有Chrome版本(tampermonkey),甚至IE.Safari.Opera都有--虽然这些插件是由不同的开发者开发出来的,界面也可 ...

  2. 【油猴脚本】改变网页代码块的字体样式/美化LeetCode代码文字显示(CSS;设置@font-face和font-family)

    美化网页的代码字体 脚本安装地址: 参考:改变网页代码块的字体样式 更新日志 V0.1 更新时间:2021年9月20日23:04:41 更新功能: 1.改变LeetCode.CSDN.博客园嵌入的代码 ...

  3. 为了不手动命名驼峰变量名,我开发了一套油猴脚本...

    前言 你知道程序员最经常做的事是什么吗?是取变量名! 我们常规取变量名的方式是这样的,打开谷歌搜索或者有道搜索,输入变量的中文名,然后复制翻译结果,转到编译器改为驼峰命名,大致流程如下: 我个人对这种 ...

  4. 雷利子油猴脚本v0.3.6,无需启动天翼客户端直接下载

    简介: 雷利子油猴脚本是一款非常强力的天翼网盘下载工具,能够帮助你跳过客户端直接在网页上下载文件,突破多文件分享页文件大小下载限制,有需要的用户不要错过了,欢迎下载使用! 插件功能: [√] 突破单文 ...

  5. (油猴脚本网盘下载加速)

    百度网盘不限速下载方法 一.浏览器安装Tampermonkey扩展 1.1安装扩展 1.2打开扩展 二.安装网盘下载脚本 2.1安装脚本 2.2首次进行验证 三.脚本使用 3.1创建分享链接 3.2下 ...

  6. IDM下载工具配合油猴脚本帮你实现快速下载百度网盘文件

    安装IDM下载工具 第一步: 安装IDM 第二步: 配置IDM 具体步骤为: 提前新建一个文件夹,专门存放IDM的下载文件 第三步: 将IDM的扩展程序集成到谷歌浏览器,使得我们在谷歌浏览器中点击下载 ...

  7. Tampermonkey(油猴)脚本编写快速入门

    目录 油猴脚本概述 脚本注释/注解 脚本权限 grant 添加新脚本 自定义网页倒计时 网页浏览离开黑屏保护 微博视频下载助手 华为云工作项列表突出展示工作项 Greasy Fork 发布脚本 油猴脚 ...

  8. 【教程、无技术含量】简单的油猴脚本编写教程

    不建议阅读者: 前端大神 想要深入学习(涉及到分析挖掘调用网站中js算法/自己写算法)油猴脚本的读者[备注:楼主也不会,楼主也很绝望啊...] 阅读以下内容所需知识: javascript/jQuer ...

  9. 油猴脚本Tampermonkey的简介和安装使用,五分钟安装

    什么是油猴脚本 Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它支持以下浏览器,Chrome,Microsoft Edge,Safari,Opera Next,Firef ...

  10. 油猴脚本、常用拓展的教程

    目录 油猴脚本 常用拓展 本文章为个人经验总结,没有广告以及营销想法. 油猴脚本 注:油猴脚本部分分两部分:拓展安装教程.脚本下载教程 油猴脚本在主流浏览器都可以安装,本篇以edge为例 1.打开浏览 ...

最新文章

  1. mysql为什么要压测_mysql集群压测的详细介绍
  2. 为什么铝基板无线接受电路板将信号源烧了?
  3. 关于无法显示-隐藏文件、文件夹以及操作系统文件夹
  4. 等了半个多月的悟空宝终身寿险
  5. 使用 Arthas 排查开源 Excel 组件问题
  6. HTML基础第四讲---图像
  7. sql和sqlite常用查询语句
  8. 如何写一个vue指令directive
  9. 模拟扑克牌随机选择(Java)
  10. ajax php 错误提示,php – jQuery AJAX错误处理
  11. 计算机兴趣小组的意义,计算机兴趣小组总结
  12. Linux scp 两台服务器传输文件
  13. Windows 添加用户
  14. canoe开发从入门到精通_后端java开发工程师学习路线
  15. 卡常数技巧(未完结)
  16. 表单标签<input>的介绍
  17. Sql Server Report Builder 计算标准偏差
  18. .tar.lz压缩包解压
  19. 存储过程,使用游标,详细过程及详解
  20. MAC maven安装配置

热门文章

  1. Qt GUI编程 基础入门
  2. 软件测试——测试用例设计测试分类详解
  3. 【读书笔记】浪潮之巅——公司史篇
  4. 浪潮之巅 第三章 “水果公司”的复兴 (4) 大难不死
  5. 限时!字节Java程序性能优化宝典开源,原来这才叫性能优化
  6. python 基础知识复习巩固
  7. 汉若塔c语言源码,汉诺塔C语言.doc
  8. 测试抑郁症软件,‎App Store 上的“抑郁症测试 - 心理测试”
  9. 一场暴雨引发的装机日记
  10. vb6源码 ymodem_VB爱好者乐园(VBGood)