天空宫阙 发表于 2020-1-5 15:03

知音漫客付费漫画弹窗隐藏tampermonkey脚本(超详细)

本帖最后由 天空宫阙 于 2020-1-5 15:57 编辑

之前写过一个知音漫客漫画的爬虫
https://www.52pojie.cn/thread-1042433-1-1.html

但是要看漫画还有下载总没有在线看方便
当时写爬虫的时候我就发现
付费的漫画只是会弹出一个让你付费的弹窗而已,后面仍然是漫画的内容


于是很容易就可以想到如果我们可以把这个弹窗隐藏,我们就可以愉快的看漫画了
果然已经有人比我先想到了,我在https://greasyfork.org/找到了这个知音漫客网破解付费漫画https://greasyfork.org/zh-CN/scripts/390018-%E7%9F%A5%E9%9F%B3%E6%BC%AB%E5%AE%A2%E7%BD%91%E7%A0%B4%E8%A7%A3%E4%BB%98%E8%B4%B9%E6%BC%AB%E7%94%BB
因为这个脚本的代码量超级少使用我就想亲自实践一下



首先是拿到上面这个元素,并把它隐藏,我们可以通过getElementById来选择,并把它的style.dispaly设置成‘none’。

发现还少一个关闭的图标没有隐藏,并且有一层淡淡的阴影挡住了

于是我们可以选一个包含了这个弹窗的更大的容器,把它隐藏掉也是一样的
我就准备选择id为layui-layer1的这个元素,同样的把它的style.dispaly设置成‘none’。

发现成功的把让你付费的弹窗隐藏了,先庆祝一下成功一半了
还差一个阴影没有去掉
其实阴影的去除方法类似

这个时候发现没有办法滚动
document.body.style.overflow = 'unset';
这个就可以愉快的看漫画了


用Chrome开发工具调试完了,可以用tampermonkey写个脚本,让它间隔执行,判断是否有这个让你付费的弹窗有的话就把它隐藏掉


借鉴了知音漫客网破解付费漫画这个脚本,我自己也写了一个
// ==UserScript==
// @name         知音漫客付费弹窗隐藏
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptiontry to take over the world!
// @AuThor       You
// @match      *://*.zymk.cn/*
// @grant      none
// ==/UserScript==

(function() {
    'use strict';
    var hide = function(){
      //当显示付费弹框时再做处理
      if (document.getElementById('payCharpterLayer')) {
            let layer1 = document.getElementById('layui-layer1');
            let shade1 = document.getElementById('layui-layer-shade1');
            if (shade1 && shade1.style.display != 'none') {
                shade1.style.display='none';
                layer1.style.display='none';
                //开启滚动条
                document.body.style.overflow = 'unset';
            }
      }
    }
    //循环执行
    setInterval(hide, 1);
})();



原脚本

// ==UserScript==
// @name         知音漫客网破解付费漫画
// @namespace    Recomi
// @version      1.2
// @description隐藏知音漫客网的付费弹窗,并启用滚动条,同时支持移动版页面
// @author       Recomi
// @match      *://*.zymk.cn/*
// @grant      none
// ==/UserScript==

(function() {
    'use strict';
    var loop = function () {
      //当显示付费弹框时再做处理
      if (document.getElementById('payCharpterLayer')) {
            let shade = document.getElementsByClassName('layui-layer-shade');
            if (shade && shade.style.display != 'none') {
                shade.style.display = 'none';
                let content = document.getElementsByClassName('layui-layer-page');
                if(content){
                  content.style.display = 'none';
                }
                //开启滚动条
                document.body.style.overflow = 'unset';
                //停止循环
                // window.clearInterval(this);
            }
      }
      //移动版网页的处理
      if (document.getElementsByClassName('pay').length > 0) {
            let content = document.getElementsByClassName('pay');
            if (content && content.style.display != 'none') {
                content.style.display = 'none';
                let shade = document.getElementsByClassName('layui-m-layershade');
                if(shade){
                  shade.style.display = 'none';
                }
            }
      }
    };
    //循环执行
    setInterval(loop, 1);
})();


跟原脚本只是选择元素的方式不完全相同试了一下,pc端网页的效果差不多
原脚本还对移动端做了处理,我就不实践了

使用方法:
1.安装tampermonkey
2.点击链接知音漫客网破解付费漫画https://greasyfork.org/zh-CN/scripts/390018-%E7%9F%A5%E9%9F%B3%E6%BC%AB%E5%AE%A2%E7%BD%91%E7%A0%B4%E8%A7%A3%E4%BB%98%E8%B4%B9%E6%BC%AB%E7%94%BB进入安装脚本
3.可以愉快的看漫画了
我的入门语言是python主要写爬虫,奈何现在不会点JavaScript都爬不到数据,于是就学了js,现在算是js的菜鸟,这是我第一次尝试写tampermonkey脚本,请多指教。

文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途

天空宫阙 发表于 2020-1-6 12:17

无情绝恋 发表于 2020-1-6 10:44
表示直接通过任务获取金币不就得了,哪里需要那么麻烦

装个油猴脚本以后再也不用做任务了很麻烦?
还是说我的步骤写的很麻烦,哥哥,我投的是编程语言区,这么详细的探索过程是为后面的代码做铺垫的,看来你是更喜欢甩代码的文章喽!
我们可能不在同一个频道就不多说了。还是感谢你从千万篇文章中挑了我这篇来评论,麻烦下次理解了文章的中心思想再来评论。

Jack-lee 发表于 2020-1-5 15:15

6666,学习了

墨染门前雪 发表于 2020-1-5 15:33

很优秀,厉害了

神秘高手Mars偉 发表于 2020-1-5 15:42

御河 发表于 2020-1-5 16:47

谢谢分享,不错,

ixeliap 发表于 2020-1-5 18:08

吓得我赶紧去安装了一个

无情绝恋 发表于 2020-1-6 10:44

表示直接通过任务获取金币不就得了,哪里需要那么麻烦

宇智波大雄 发表于 2020-1-20 22:00

谢谢分享。

圣皇 发表于 2020-2-13 15:25

感谢分享
页: [1] 2
查看完整版本: 知音漫客付费漫画弹窗隐藏tampermonkey脚本(超详细)