// ==UserScript== // @name 知网下载助手 // @namespace wyn665817@163.com // @version 1.7.1 // @description 解析CNKI论文PDF格式下载地址,论文搜索结果页面和硕博论文详述页面的caj格式下载链接替换为pdf格式下载链接,知网空间页面增加pdf格式下载链接 // @author wyn665817 // @match *://*.cnki.net/* // @include */brief.aspx* // @include */detail.aspx* // @include */DefaultResult/Index* // @include */CatalogViewPage.aspx* // @include */Article/* // @connect cnki.net // @run-at document-end // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @supportURL https://greasyfork.org/zh-CN/scripts/371938/feedback // @license MIT // @downloadURL none // ==/UserScript== var $ = unsafeWindow.jQuery, url = location.pathname; if (!$) { } else if (url.match(/brief\.aspx$/)) { $('.briefDl_Y, .briefDl_D', '.GridTableContent').attr('href', reUrl); } else if (url.match(/defaultresult\/index$/i)) { $(document).ajaxSuccess(function() { if (arguments[2].url.indexOf('/Brief/GetGridTableHtml')) $('.downloadlink').attr('href', reUrl); }); } else if (url.match(/detail\.aspx$/) && location.search.match(/dbcode=C[DM][FM]D&/i)) { url = $('a:contains(分章下载)').attr('href') || '?'; url = 'https://chn.oversea.cnki.net/kcms/download.aspx' + url.replace(/%20/g, '').match(/\?.*/)[0]; $('.operate-btn a').attr('href', function() { var tip = $(this).text().trim(); if (!tip.match(/^分[页章]下载$/)) return tip == '整本下载' ? reUrl(0, this.href) : this.href; tip = this.href.replace(/kns8?(?!\/)/, 'chn.oversea').replace(/%20/g, '').replace(/kcms/, 'kns').replace(/\.aspx/, ''); return tip + '&cflag=pdf'; }); GM_xmlhttpRequest({method: 'GET', url: url, onload: done}); } else if (url.match(/CatalogViewPage\.aspx$/)) { $('#downLoadFile img').last().attr('src', function() { return this.src.replace('CAJ', 'PDF'); }).next().attr('href', reUrl).text('PDF全文下载').attr('title', 'PDF全文下载'); } else if (url.match(/^\/Article\//) && !$('#ty_pdf').length) { var $dom = $('#ty_caj').clone().insertBefore('#ty_caj'); $dom.attr('id', 'ty_pdf').find('a').attr('href', reUrl).text('PDF全文下载'); $dom.parent().attr('id', 'down_1'); } function reUrl(index, href) { return href.replace(/&dflag=\w*|$/, '&dflag=pdfdown'); } function done(xhr) { var list = $('tr', xhr.responseText).map(function() { var $dom = $(this).find('a, td:last'); return $dom.eq(0).html().trim().replace(/ /g, ' ') + '\t' + $dom.eq(1).text().trim().split('-')[0]; }).get().join('\n'), blob = new Blob([list]); $('
  • 复制目录
  • ').prependTo('.operate-btn').click(function() { GM_setClipboard(list); alert('目录已复制到剪贴板'); }).toggle(!!list); $('
  • 下载目录
  • ').prependTo('.operate-btn').toggle(!!list).children().each(function() { this.download = $('.wx-tit h1').text().trim() + '_目录.txt'; this.href = URL.createObjectURL(blob); }).css('margin-right', '3px'); }