Greasy Fork 支持简体中文。

知网下载助手

解析CNKI论文PDF格式下载地址,论文搜索结果页面和硕博论文详述页面的caj格式下载链接替换为pdf格式下载链接,知网空间页面增加pdf格式下载链接

目前為 2020-07-06 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 知网下载助手
  3. // @namespace wyn665817@163.com
  4. // @version 1.6.0
  5. // @description 解析CNKI论文PDF格式下载地址,论文搜索结果页面和硕博论文详述页面的caj格式下载链接替换为pdf格式下载链接,知网空间页面增加pdf格式下载链接
  6. // @author wyn665817
  7. // @match *://*.cnki.net/*
  8. // @include */brief.aspx*
  9. // @include */detail.aspx*
  10. // @include */DefaultResult/Index*
  11. // @include */CatalogViewPage.aspx*
  12. // @include */Article/*
  13. // @connect cnki.net
  14. // @run-at document-end
  15. // @grant unsafeWindow
  16. // @grant GM_xmlhttpRequest
  17. // @grant GM_setClipboard
  18. // @supportURL https://greasyfork.org/zh-CN/scripts/371938/feedback
  19. // @license MIT
  20. // ==/UserScript==
  21.  
  22. var $ = unsafeWindow.jQuery,
  23. url = location.pathname;
  24.  
  25. if (!$) {
  26. } else if (url.match(/brief\.aspx$/)) {
  27. $('.briefDl_Y, .briefDl_D', '.GridTableContent').attr('href', reUrl);
  28. } else if (url.match(/DefaultResult\/Index$/)) {
  29. $(document).ajaxSuccess(function() {
  30. if (arguments[2].url == '/kns/Brief/GetGridTableHtml') $('.downloadlink').attr('href', reUrl);
  31. });
  32. } else if (url.match(/detail\.aspx$/) && location.search.match(/dbcode=C[DM][FM]D&/i)) {
  33. $('.dllink > .icon').add('.operate-btn a').attr('href', function(index, url) {
  34. var tip = $(this).text().trim();
  35. if (tip == '整本下载') {
  36. return reUrl(0, url);
  37. } else if (tip.match(/^分[页章]下载$/)) {
  38. tip = this.href.replace(/^https/, 'http').replace(/%20/g, '').replace(/kns/, 'chn.oversea');
  39. return tip.replace(/chn\.oversea8/, 'cnbeta.oversea') + '&cflag=pdf';
  40. }
  41. return url;
  42. });
  43. url = $('a[href*="/kns/download?"]:contains(分章下载)').attr('href');
  44. url = url && url.replace(/^.+\?/, 'http://kns8.cnki.net/kns/download?').replace(/\s/g, '').replace(/&cflag=\w*|$/, '&cflag=pdf');
  45. GM_xmlhttpRequest({
  46. method: 'GET',
  47. url: url || $('a:contains(分章下载)').attr('href').replace(/^.+\?/, 'http://chn.oversea.cnki.net/kns/download.aspx?'),
  48. onload: function(xhr) {
  49. var list = $('tr', xhr.responseText).map(function() {
  50. var $dom = $(this).find('a, td:last');
  51. return $dom.eq(0).html().trim().replace(/ /g, ' ') + '\t' + $dom.eq(1).text().trim().split('-')[0];
  52. }).get().join('\n'),
  53. $now = $('<a class="icon icon-dlBlue" style="cursor: pointer;">复制目录</a>').prependTo('.dllink');
  54. $('<li class="btn-dlpdf"><a>复制目录</a></li>').prependTo('.operate-btn').add($now).click(function() {
  55. GM_setClipboard(list);
  56. alert('目录已复制到剪贴板');
  57. }).toggle(!!list);
  58. }
  59. });
  60. } else if (url.match(/CatalogViewPage\.aspx$/)) {
  61. $('#downLoadFile img').last().attr('src', function(index, url) {
  62. return url.replace('CAJ', 'PDF');
  63. }).next().attr('href', reUrl).text('PDF全文下载').attr('title', 'PDF全文下载');
  64. } else if (url.match(/^\/Article\//) && !$('#ty_pdf').length) {
  65. var $dom = $('#ty_caj').clone().insertBefore('#ty_caj');
  66. $dom.attr('id', 'ty_pdf').find('a').attr('href', reUrl).text('PDF全文下载');
  67. $dom.parent().attr('id', 'down_1');
  68. }
  69.  
  70. function reUrl(index, url) {
  71. return url.replace(/&dflag=\w*|$/, '&dflag=pdfdown');
  72. }