【2020.01.31更新】广州图书馆cnki资源下载Tampermonkey脚本

  • 严一两
    原因:我用zotero管理文献,在cnki查到的文献,可以通过浏览器插件直接导入。因为cnki收费,所以下载只能到广州图书馆提供的页面下载。但是zotero的浏览器插件不支持广州图书馆资源页面导入。
    需求:在cnki页面完成查询和导入,同时可以下载文件。
    实现方法:利用Tampermonkey插件的GM_xmlhttpRequest功能,打开cnki文献页面的同时,后台打开对应的广图资源页面,提取其中的下载链接,将cnki页面中的下载链接替换为广图资源下载链接。

    2020.01.31更新:
    1. 广州图书馆的域名改为org.cn
    2. 新的下载资源中有相对链接
    3. 修改了正则表达式

    2020.02.01更新:
    1. 解决了弹出两个网页的问题
    2. 现在可以针对https网址

    已知问题:刷新过多会被阻止下载,需要到广州图书馆网页http://www.gzlib.org.cn验证。
    1. // ==UserScript==
    2. // @name 广州图书馆下载CNKI V0.3
    3. // @namespace http://tampermonkey.net/
    4. // @version 0.3
    5. // @description try to take over the world!
    6. // @author Leon_Yan
    7. // @match http://kns.cnki.net/*
    8. // @match https://kns.cnki.net/*
    9. // @exclude http://kns.cnki.net/kns/brief/*
    10. // @exclude https://kns.cnki.net/kns/brief/*
    11. // @exclude http://kns.cnki.net/*/frame/*
    12. // @exclude https://kns.cnki.net/*/frame/*
    13. // @connect gzlib.org.cn
    14. // @grant GM_openInTab
    15. // @grant GM_xmlhttpRequest
    16. // ==/UserScript==

    17. var cnkiUrl = "http://kns.cnki.net/";
    18. var cnkiSUrl = "https://kns.cnki.net/";
    19. var gzlibcnkiUrl = "http://sso.gzlib.org.cn/interlibSSO/goto/75/=jmr9bmjh9mds/";
    20. //var rDownload = /<div class="dllink" id="DownLoadParts">([\s\S]*)<\/div>[\s\S]*<div class="dllink-down">/;
    21. var rDownload = /<div class="dllink" id="DownLoadParts">([\s\S]*)<div class="dllink-down">/;

    22. (function() {
    23. 'use strict';
    24. // 替换cnki网址为广州图书馆资源网址
    25. var tURL = document.URL;
    26. tURL = tURL.replace(cnkiUrl, gzlibcnkiUrl); //针对http网址
    27. tURL = tURL.replace(cnkiSUrl, gzlibcnkiUrl); //针对https网址
    28. GM_xmlhttpRequest({ //打开广州图书馆资源页面
    29. method: "GET",
    30. url: tURL,
    31. onload: function(response) {
    32. if(response.finalUrl.match("login.gzlib")){//如果没有登录,则弹出登录界面
    33. GM_openInTab(response.finalUrl);
    34. }
    35. else{
    36. var gzlibdl = response.responseText.match(rDownload)[1]; //查找广州图书馆资源页面下载链接
    37. gzlibdl = gzlibdl.replace('../../',gzlibcnkiUrl); //相对链接修改为绝对链接
    38. document.getElementById("DownLoadParts").innerHTML = gzlibdl; //替换cnki页面的下载链接
    39. }
    40. },
    41. onerror: function(response) {
    42. alert("对不起,脚本出现错误,请联系作者。");
    43. }
    44. });
    45. })();
    复制代码
  • s
    sswjzx
    厉害 支持 iOS fly ~
  • x
    xuehuaye
    楼主强,赞一个
  • g
    gamedog
    下载双击,语法错误
  • h
    haggy
    太。。。强了
  • j
    johnalex
    谢谢 不错哦 iOS fly ~
  • 严一两
    哦,忘说了,用这个得有广州图书馆账号。
    所以需求其实很小的。
    上面的同志肯定没细看。

  • g
    guoyongyi68
    不错 赞!
  • 严一两
    2020.01.31
    公司提供的cnki账号失效,还好广州图书馆提供了免费资源。
    把两年前写的脚本修改一下,还是很好用。


    再次感谢广州图书馆。
  • 大黄鸭
    回复9#严一两

    我按d版提供的方法,但在知网里根本没法搜索,图片都是一坨问号,搜啥都出不来……


    免费下载知网,万方付费论文的具体方法:

    1、打开支付宝app,搜索框输入“浙江图书馆”,关注“浙江图书馆生活号”。进入生活号,在下边菜单中点击“服务”-“我的读者证”-“确认授权”。

    2、点击“办理读者证”,就会自动从支付宝拉取信息,只需要填写密码(一定要记住),选择押金类型。不要选择交押金的(芝麻信用550分以上选择无押金),选择阅览证,不需要押金。点击“确定”-“立即领取浙江图书馆读者证”-“确认授权”。

    3、再次进入生活号,便可看到你的证号,一会要用。或者从支付宝首页的卡包中也能看到。

    4、用电脑或者手机浏搜索“浙江图书馆”或输入以下网址,在网站右上角使用读者证号码和密码登陆。在网站右下角有一栏“数据推荐”,可根据需求选择相应的数据库,比如中国知网、万方等。

    浙江图书馆官网:[[http://www.zjlib.cn]]
    [图片https://www.hi-pda.com/forum/att ... a7d3ee4e6f17a6c.jpg]
    [图片https://www.hi-pda.com/forum/att ... 197ca1907ef71f8.jpg]
    [图片https://www.hi-pda.com/forum/att ... 41546a42afaccba.jpg]
  • q
    qingfen163
    马克下 iOS fly ~
  • l
    lomyself
    代码改变生活