吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25010|回复: 2006
上一主题 下一主题
收起左侧

[其他原创] 油猴脚本解析某学术网站(ZhiWang)文章下载链接文件

    [复制链接]
跳转到指定楼层
楼主
shu810687117 发表于 2023-11-26 14:17 回帖奖励
本帖最后由 shu810687117 于 2023-11-27 17:51 编辑


如果出现获取链接失败,可以等等再试,一般10分钟会重置一次,后续也会优化这个逻辑

简介:

    使用油猴脚本在网页上插入按钮,按钮获取到网页上文件的ID,来调用外部接口实现免登录对PDF/CAJ下载。也是第一次尝试用油猴脚本来写工具,有问题欢迎回帖,看到会回复的。
    如果进入ZW没有按钮显示是正常,只有搜索页面或者文章详情页面才会渲染按钮,有按钮说明脚本启动成功了。成功下载会弹出新窗口,如果新窗口被阻止了,需要允许一下。自己测试了火狐和edga浏览器。

使用方法:
    在油猴中新建脚本,然后将附件的内容复制进去即可。

    如果复制脚本不行,请下载附件或者访问油猴脚本的链接安装。

注意:
1、如果不成功,检查一下油猴插件是不是有访问所有URL的权限。(如图2)
2、不过当前接口有限制一天只能成功下载三次,大家自行使用吧。





[图1]





[图2]





JS源码
链接:https://pan.baidu.com/s/1Z7w7zs6sIYdf8fijNUkmWA?pwd=5xje
提取码:5xje


油猴脚本地址:知网文章下载解析工具 (greasyfork.org)

[JavaScript] 纯文本查看 复制代码
// ==UserScript==
// @name         ZW下载解析工具
// @namespace    [url=http://tampermonkey.net/]http://tampermonkey.net/[/url]
// @version      1.0
// @description  去其他
// @author       XiaoM
// @match        https://*.cnki.net/kns8s/*
// @match        https://*.cnki.net/kcms2/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        unsafeWindow
// @require      [url=https://code.jquery.com/jquery-3.6.0.min.js]https://code.jquery.com/jquery-3.6.0.min.js[/url]
// @require      [url=https://unpkg.com/layui@2.8.18/dist/layui.js]https://unpkg.com/layui@2.8.18/dist/layui.js[/url]

// @connect      xuexi365.top
// @grant         GM_xmlhttpRequest

// ==/UserScript==


(function() {



    'use strict';
    /* globals jQuery, $, waitForKeyElements */

    var $ = unsafeWindow.jQuery;

//this.$ = this.jQuery = jQuery.noConflict(true);
// @require      file://D:\Microsoft VS Code\project\ZW下载\index.js

var link = document.createElement('link');
link.rel="stylesheet"
link.href = 'https://unpkg.com/layui@2.8.18/dist/css/layui.css';
document.head.appendChild(link);


// var script = document.createElement('script');
// script.src = 'https://unpkg.com/layui@2.8.18/dist/layui.js';
// document.head.appendChild(script);



function download(dataFilename,dataDbname,orderid){


    var loadIndex = layer.msg('正在获取下载地址', {
        icon: 16,
        shade: 0.01
      });


   console.log({dataFilename,dataDbname,orderid})


   let url="http://www.xuexi365.top/api_zw/RTVC875CY"
   GM_xmlhttpRequest({
       method:     "POST",
       url:        url,
       data:      JSON.stringify( {'dataFilename':dataFilename,'dataDbname':dataDbname,'orderId':orderid}),
       anonymous:  true,
       headers: {
           "Accept": "application/json, text/javascript, */*; q=0.01",
           "Content-Type": "application/json; charset=utf-8"


       },
       onload: function (res) {

        console.log(res.responseText)

            try{
                var json=JSON.parse(res.responseText);
            }catch(err){
                layer.close(loadIndex);
                layer.alert("[0X86889]网络错误,可能接口出现问题,请联系管理源");
                return;
            }

            try{
                $.isEmptyObject(json.data.code)
            }catch(err){
                layer.close(loadIndex);
                layer.alert("[0X83889]网络错误,可能接口出现问题,请联系管理源");
                return;
            }


           if(json.data.code >0){
               layer.close(loadIndex);

            layer.alert('下载地址获取成功');
            window.open(json.data.url, "_blank");
           }else{
               layer.close(loadIndex);
            layer.alert(json.data.msg);
           }

       },
       onerror:    function (){
           layer.close(loadIndex);
        layer.alert('出现错误,请重试');
       }
   });

}


layui.use(function(){
    var util = layui.util;

    var bars=[];

   if(location.pathname.search('kns8s')>0){
    //查询页面
    bars= [{ // 定义可显示的 bar 列表信息 -- v2.8.0 新增
        type: 'help',

        icon: 'layui-icon-help'
    }, {
        type: 'download',

        icon: 'layui-icon-download-circle',
        style: 'background-color: #16baaa;'
    }]
   }else if(location.pathname.search('kcms2')>0){

    //详情页面
    bars= [{ // 定义可显示的 bar 列表信息 -- v2.8.0 新增
        type: 'help',

        icon: 'layui-icon-help'
      }, {
        type: 'download_caj',

        icon: 'layui-icon-download-circle',
        style: 'background-color: #3594ff;'
      }, {
        type: 'download_pdf',

        icon: 'layui-icon-download-circle',
        style: 'background-color: #5d9e2b;'
      }]
   }






    // 自定义固定条
    util.fixbar({
      bars:bars,
      // bar1: true,
      // bar2: true,
       default: false, // 是否显示默认的 bar 列表 --  v2.8.0 新增
      // bgcolor: '#393D52', // bar 的默认背景色
       css: { bottom: 200},
      // target: '#target-test', // 插入 fixbar 节点的目标元素选择器
      // duration: 300, // top bar 等动画时长(毫秒)
      on: { // 任意事件 --  v2.8.0 新增
        mouseenter: function(type){

          if(type=='help'){
            var content = "如何使用"
          }else if(type=='download'){
            var content = "帮我下载"
          }else if(type=='download_caj'){
            var content = "下载CAJ"
          }else if(type=='download_pdf'){
            var content = "下载PDF"
          }


          layer.tips(content, this, {
            tips: 4,
            fixed: true
          });
        },
        mouseleave: function(type){
          layer.closeAll('tips');
        }
      },
      // 点击事件
      click: function(type){
        console.log(this, type);

        if(type=='help'){


              layer.open({
                type: 1,
                area: ['420px', '240px'], // 宽高
                content: '<p style="padding-left:10px">在查询页面点击下载不能选择格式</br>工具根据系统的内容可能caj也可能是pdf</br>如果需要选定则需要进入到文章的详情页面</p>'
              });


          }else if(type=='download'){

            var selectCount =  $("#selectCount").text();
            if( selectCount !=1){

                layer.tips("请查看这里,是否选定的不是一个", "#selectCount", {
                    tips: [1, '#ff5722'],
                    time:10000
                  })
                layer.msg('您没有选择或则选择了多个!');

                return
            }


            var FileNameSNZKPT = localStorage.getItem('FileNameSNZKPT');
            var input = $('input[value="'+FileNameSNZKPT+'"]').val()
            if(input!=FileNameSNZKPT){
                layer.msg('请查看是否选择的内容不在本页面!');

                return
            }

            //children('.icon-collect').attr('data-filename')
           var dataFilename = $('input[value="'+FileNameSNZKPT+'"]').parent("td").parent("tr").find('.icon-collect').attr("data-filename");
           var dataDbname= $('input[value="'+FileNameSNZKPT+'"]').parent("td").parent("tr").find('.icon-collect').attr("data-dbname");
           var orderid= $('input[value="'+FileNameSNZKPT+'"]').parent("td").parent("tr").find('.downloadlink').attr("href");

            const regex = /order\?id=(.*)/i;
            var match = regex.exec(orderid);
            if(match){
                orderid=match[1]
            }

              layer.confirm('这里下载可能是CAJ格式,需要PDF需要进入文章详情页点击按钮,确定要下载码?', {icon: 3}, function(){
                  download(dataFilename,dataDbname,orderid)
              }, function(){
                 // layer.msg('点击取消的回调');
              });





          }else if(type=='download_caj'||type=='download_pdf'){

            var dataFilename = $('#param-filename').val();
            var dataDbname=  $('#param-dbname').val();
            if(type=='download_caj'){
                var orderid= $('#cajDown').attr("href");

            }else if(type=='download_pdf'){
                var orderid= $('#pdfDown').attr("href");
            }

            const regex = /order\?id=(.*)/i;
            var match = regex.exec(orderid);
            if(match){
                orderid=match[1]
            }

            download(dataFilename,dataDbname,orderid)


          }


      }
    });

    //隐藏知网原本滚动条
    $('.fixedbar').hide();


  });









})();

免费评分

参与人数 270吾爱币 +258 热心值 +232 收起 理由
wh1tefi1sh + 1 谢谢@Thanks!
Leah511 + 1 谢谢@Thanks!
Demifiend2917 + 1 我很赞同!
山上的冷 + 1 + 1 谢谢@Thanks!
clgy + 1 + 1 很有用,谢谢
TabKey9 + 1 + 1 非常感谢!
Cyberpunk2077 + 1 + 1 谢谢@Thanks!
zhl7460799 + 1 + 1 我很赞同!
小小提先生 + 1 + 1 谢谢@Thanks!
cxjun0505 + 1 + 1 谢谢@Thanks!
19182572453 + 1 我很赞同!
doudou110 + 1 + 1 谢谢@Thanks!
艺路是蓝 + 1 + 1 谢谢@Thanks!
_达圣 + 1 + 1 我很赞同!
kongbai27 + 1 + 1 谢谢@Thanks!
大漠长风 + 1 + 1 谢谢@Thanks!
guten + 1 谢谢@Thanks!
风风魔王 + 1 + 1 谢谢@Thanks!
sosaid + 1 + 1 谢谢@Thanks!
Zed丶小灰狼 + 1 + 1 热心回复!
Breeze0 + 1 + 1 谢谢@Thanks!
zpzwz + 1 + 1 谢谢@Thanks!
ac9420 + 1 + 1 谢谢@Thanks!
b8909778 + 1 + 1 谢谢@Thanks!
HillBoom + 1 + 1 用心讨论,共获提升!
hamxbb + 1 + 1 我很赞同!
82110588 + 1 + 1 谢谢@Thanks!
yx69 + 1 + 1 我很赞同!
Wangtonga + 1 感谢
zxyfy + 1 用心讨论,共获提升!
lichwil57120 + 1 + 1 谢谢@Thanks!
Kyle01 + 1 谢谢@Thanks!
longwu1031 + 2 + 1 谢谢@Thanks!
百里颜王 + 1 + 1 谢谢@Thanks!
YLSpace + 1 + 1 我很赞同!
suohu1984 + 1 + 1 我很赞同!
shiqiangge + 1 我很赞同!
lyricsaya + 1 + 1 谢谢@Thanks!
ooodx + 1 + 1 谢谢@Thanks!
LiuYi0526 + 1 谢谢@Thanks!
这一次抬头微笑 + 1 + 1 谢谢@Thanks!
QW666 + 1 + 1 我很赞同!
hacker6688 + 1 + 1 谢谢@Thanks!
AC136 + 1 + 1 谢谢@Thanks!
知云阁主 + 1 + 1 我很赞同!
McOtP + 1 用心讨论,共获提升!
mhwangdex + 1 + 1 我很赞同!
andrang + 1 + 1 热心回复!
YimingQ + 1 + 1 谢谢@Thanks!
伏热 + 1 + 1 谢谢@Thanks!
pojie20231111 + 1 + 1 谢谢@Thanks!
18042745101 + 1 谢谢@Thanks!
babucff + 1 + 1 热心回复!
liqrwily + 1 谢谢@Thanks!
zhongyihaitun + 1 谢谢@Thanks!
Chenda1 + 1 + 1 我很赞同!
不会上树的鱼 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
hailuo233 + 1 + 1 谢谢@Thanks!
lr42 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
getbt + 1 + 1 我很赞同!
dugu80 + 1 + 1 我很赞同!
theStyx + 2 + 1 谢谢@Thanks!
aries_1010 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
胖子最多情 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
O168 + 1 + 1 热心回复!
时间让我沉默 + 1 + 1 我很赞同!
李佑辰 + 2 + 1 谢谢@Thanks!
yysygy + 1 + 1 谢谢@Thanks!
zgh1997 + 1 + 1 热心回复!
jeehom + 1 + 1 可以下载,谢谢!!
weihai0631 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
CallMeW + 1 我很赞同!
aa5555 + 1 + 1 谢谢@Thanks!
hans_zw1 + 1 + 1 谢谢@Thanks!
q8306925 + 1 + 1 我很赞同!
cloud_hb + 1 + 1 我很赞同!
jj131028 + 1 我很赞同!
xb0wxh + 1 + 1 用心讨论,共获提升!
lijun888 + 1 谢谢@Thanks!
天堂水 + 1 + 1 谢谢@Thanks!
chenJn + 1 + 1 谢谢@Thanks!
唐小样儿 + 1 + 1 我很赞同!
enligh + 1 + 1 我很赞同!
tys88 + 1 + 1 我很赞同!
113663Y3280 + 1 + 1 用心讨论,共获提升!
xuna2009 + 1 + 1 用心讨论,共获提升!
Chiya + 1 + 1 谢谢@Thanks!
wuaiwxh + 1 我很赞同!
墨色人间 + 1 谢谢@Thanks!
liupin924 + 1 谢谢@Thanks!
pinkfloyddddd + 1 热心回复!
bingohwy + 1 + 1 热心回复!
yirenjieqian + 1 + 1 谢谢@Thanks!
RiAmaiputer + 1 + 1 热心回复!
reminiscen + 1 + 1 谢谢@Thanks!
paltan + 1 我很赞同!
chinajxw + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
AndyKuen2 + 1 + 1 用心讨论,共获提升!
shanzhanzhe + 1 谢谢@Thanks!
WAPJlss123 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| shu810687117 发表于 2023-11-26 15:08 |楼主
本帖最后由 shu810687117 于 2023-11-26 15:21 编辑

浩浩君 发表于 2023-11-26 15:00
我不知道什么情况 好像报错啦???

链接:https://pan.baidu.com/s/1Z7w7zs6sIYdf8fijNUkmWA?pwd=5xje
提取码:5xje

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
DUDU666 + 1 + 1 谢谢@Thanks!

查看全部评分

推荐
FruitBaby 发表于 2023-11-26 14:54
这种脚本太有用了,之前下载都是收费的,谢谢分享
推荐
 楼主| shu810687117 发表于 2023-11-28 11:19 |楼主
af8889 发表于 2023-11-28 11:13
今天好像不行了,按照楼主国了半个小时等重置后,还是一直提示“获取下载链接失败”

现在试试看

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
af8889 + 1 + 1 我很赞同!

查看全部评分

推荐
 楼主| shu810687117 发表于 2023-11-26 14:50 |楼主
浩浩君 发表于 2023-11-26 14:42
显示用户脚本无效呀

我是正常的,你试试用油猴插件创建脚本试试
4#
ank 发表于 2023-11-26 14:38
感谢楼主,您的分享十分有用
5#
浩浩君 发表于 2023-11-26 14:42
显示用户脚本无效呀
6#
 楼主| shu810687117 发表于 2023-11-26 14:47 |楼主
浩浩君 发表于 2023-11-26 14:42
显示用户脚本无效呀

油猴里面显示的吗
7#
xiudle 发表于 2023-11-26 14:55
支持  谢谢!!!!!!!
8#
浩浩君 发表于 2023-11-26 15:00
我不知道什么情况 好像报错啦???
9#
 楼主| shu810687117 发表于 2023-11-26 15:05 |楼主
浩浩君 发表于 2023-11-26 15:00
我不知道什么情况 好像报错啦???

从附件下载一下然后复制过去,感觉怪怪的,格式错乱了
10#
浩浩君 发表于 2023-11-26 15:05
okok 我试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 16:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表