本站木有非理性广告和有害内容,请大度地将本站加入广告屏蔽白名单吧~~~ ::博客文章推荐::

更新:使用UserScript自动通过百度网盘/360云盘提取码(附下载)

:: 原创作品 木魚 6135℃ 20评论

上次遇到的问题

上次发了这么个东西:技术贴:使用UserScript自动通过百度网盘/360云盘提取码

00256.gif

从很多人的反应来看,上次的代码很多人还是感兴趣的,但是成功的人很少。这主要是因为以下俩原因。

脚本没搞对

上次的文章里,提供了三段脚本。但我只是在第一个脚本那里说了新建脚本的步骤。

然而天真的我以为后面就可以不用再说新建脚本的步骤了……

直到我看到很多人把三段脚本放在同一个脚本文件里……

00223.gif

但并不是啊!一般来说是每个网站新建一个脚本啊!方便管理啊!剩下的俩脚本要分别新建啊!然后 @match 需要单独设置啊!

20160317224031

20160317224117

00741.gif

脚本错误

这个也是我的责任,我应该早点就发现的。

原因在于以下这行代码:

document.querySelectorAll("a[href*='pan.baidu.com'], a[href*='yunpan.cn']").forEach

正常情况下,document.querySelectorAll返回的是一个NodeList,并不是一个数组,所以它并没有forEach的方法,所以有的同学会发现这样的错误。

20160317221100

那我为什么没有发现呢?我觉得我应该甩锅……

20160317221424

……为什么会这样?我也不知道,我不会告诉你这都是Chrome浏览器,所以Chrome浏览器自己的实现都有差异。

00310.gif

要解决这个兼容性问题也很简单,就是使用 Array.prototype.slice 来转换为一个真正的数组:

Array.prototype.slice.call(document.querySelectorAll("a[href*='pan.baidu.com'], a[href*='yunpan.cn']")).forEach(
    function (link) {
    	var txt = link.nextSibling && link.nextSibling.nodeValue;
    	var code = /.*?([a-z\d]{4})/i.exec(txt) && RegExp.$1;
    	if (!code) {
    		txt = link.parentNode.innerText;
    		code = /.*?([a-z\d]{4})/i.exec(txt) && RegExp.$1;
    	}
    	if (code) {
    		var href = link.getAttribute("href");
    		link.setAttribute("href", href + "#" + code);
    	}
    }
);
注:原文已更新  15.gif 

添加对新浪微盘的支持

有些网站有用新浪微盘做分享。而这分享也可以加码。

既然有码,那么一样可以添加支持。具体的分析过程这里不谈了,因为大致思路都一样。

// ==UserScript==
// @name         新浪微博微盘工具
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://vdisk.weibo.com/*
// @grant        none
// ==/UserScript==
/* jshint -W097 */
'use strict';
 
(function () {
	if (self.location.pathname.indexOf("/lc/") === -1)
		return;
 
	var hash = self.location.hash.slice(1, 5);
	var input = document.querySelector("#keypass");
 
	if (!/[a-z\d]{4}/i.test(hash) || !input)
		return;
 
	input.value = hash;
	document.querySelector("#validate a").click();
})();

在对新浪微盘添加支持后,需要在之前的转换链接中也添加对vdisk的转换,方法很简单,就是将选择器修改一下就好了,毕竟链接格式都差不多……

Array.prototype.slice.call(document.querySelectorAll("a[href*='pan.baidu.com'], a[href*='yunpan.cn'], a[href*='vdisk.weibo.com']"))

添加对软件站的支持

我们之前只添加了zd423网站的支持,倘若你发现自己常去的啥站也是用这些网盘加密分享的,那么应该怎么办呢?简单,最简单的方法就是修改zd423的那个脚本,将对应的网站加入@match中即可。

20160317225628

注意:仅针对普通软件站。如果软件站有自己特殊的显示逻辑或加载逻辑,那么可能需要有特征性地去改写了。

授人以渔

我突然意识到,授人以渔的时候,你要是在学不会,那我只能直接给你鱼了  04.gif 

SO,拿去。。

网盘自动过验证码脚本 201603172258

知道怎么导入不……

20160317230113

00049.gif

 

喜欢 (7)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(20)个小伙伴在吐槽
  1. 为什么我下载你做好的压缩包导入进去 百度的不行 我用的是Chrome浏览器

    小学生2016-05-27 19:45 回复
  2. 求助贴吧的怎么破。这个对贴吧链接的无效啊

    匿名用户2016-04-14 03:51 回复
      • 博主这个是全局的?
        这个脚本和您的有何异同呢?
        https://greasyfork.org/zh-CN/scripts/13463-%E7%BD%91%E7%9B%98%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%86%99%E5%AF%86%E7%A0%81-%E5%A2%9E%E5%BC%BA%E7%89%88
        我看该作者的脚本描述里有这么一段:
        本脚本增加了网盘密码自动提取功能,为了避免脚本占用不必要的资源,脚本生效于网页DOM加载完毕,不会事先融合超链接与密码,而是在点击超链接时产生进行融合。

        是什么意思呢?烦请解惑,谢了.

        都收到了斯柯达2016-04-14 19:52 回复
        • 看了下,大概差不多。它说的意思是点击链接的时候才判断是否是网盘链接是否有提取码,这样可以避免提前判断占用资源。只不过我觉得这样可以省资源可能只是想象中的吧(毕竟这样需要监听所有的链接点击)。

          木魚2016-04-14 20:49 回复
          • 感谢解惑.
            安装这种全局性的脚本不会影响打开网页的速度什么的吧?

            都收到了斯柯达2016-04-14 21:27
        • 全局会有影响,但脚本不复杂,影响不大。

          木魚2016-04-14 22:36 回复
          • 明白了.感谢您的耐心解答和指教.
            多谢.

            都收到了斯柯达2016-04-15 07:52
      • 请问博主,为什么在这页面http://www.zdfans.com/2860.html,用你那集合的脚本,第一个链接竟然不会检测到访问码,鼠标移动到链接上面显示不了,开发者工具里面,错误显示“because its MIME type ('image/gif') is not executable”“Uncaught ReferenceError: text is not defined”

        闭目2016-09-01 00:18 回复
  3. LZ是个好人!大大的好人!向楼主看齐!

    coooooooder2016-04-13 13:36 回复
  4. 大神,请问一下,我用搜狗浏览器,安装tampermonkey legacy,导入您的脚本后可以自动通过百度云和360云盘;
    用360极速浏览器安装tampermonkey legacy,导入您的脚本后,可以自动通过百度云,却对360云盘不太灵光,怎么回事呢?

    都收到了斯柯达2016-04-13 06:47 回复
    • 直觉告诉我可能是数字的浏览器对自家的域名做了特殊的限制吧。。。。

      木魚2016-04-13 14:42 回复
    • 我这里360激素 脚本对360云盘支持挺好的

      永恆2016-07-22 15:41 回复
  5. 感谢,导入后就能用了啊,下载软件方便了许多.

    都收到了斯柯达2016-04-08 19:06 回复
  6. awesome!awesome!awesome!写点汉字

    吴远2016-03-18 11:43 回复
  7. 00049.gif不要白日做梦了

    尼采我是谁2016-03-18 08:51 回复