浏览器必备神器——油猴脚本 - Go语言中文社区

浏览器必备神器——油猴脚本


1、油猴介绍和安装

(1)作用:简单的说就是往WEB页面嵌入本地脚本以改变页面的动作与风格;

(2)安装:在google商店(https://chrome.google.com/webstore/category/extensions?hl=zh-CN)中搜索Tampermonkey并安装,需要能上google才行。

2、获取别人开发的新脚本

(1)搜索油猴脚本:在右上角的google浏览器油猴图标菜单中,选择获取新脚本

                                  

  接着,点击GreasyFork,即可进入油猴脚本的搜索窗口, 如下图所示:

   接下来就可以搜索想要的脚本了。 

(2)值得推荐的一些油猴脚本介绍:

  • 破解VIP会员视频集合破解[优酷|腾讯|乐视|爱奇艺|芒果|AB站|音悦台]等VIP或会员视频,解析接口贵精不贵多,绝对够用
  • 去掉百度、搜狗、谷歌搜索结果的重定向功能和标题一样的,就是去掉百度、搜狗、谷歌搜索结果的重定向,回归为网站的原始网址—附带有去除百度的广告添加百度、搜狗、谷歌搜索结果中Favicon显示效果
  • 百度广告(首尾推广及右侧广告)清理彻底清理百度搜索(www.baidu.com)结果首尾的推广广告、二次顽固广告与右侧广告,并防止反复
  • Endless Google:实现无需手动点击 Google 搜索结果的页码,实现自动翻页显示搜索内容

  • YouTube视频下载器:从Youtube,Twitter,Vimeo,Facebook,Instagram,SoundCloud,Dailymotion,Liveleak,Break,Imgur,Mashable,Reddit,1TV,9gag,VK,TED,优酷,bilibili,IMDb,ESPN,Flickr下载任何视频和音乐(音频) ,Bandcamp,pornhub,9gag,VK.com,ok.ru,tv.com以及另外10,000多个站点免费。 还支持下载字幕。 免费,快速且易于使用。 无需安装任何恼人的软件。 支持MP4,WEBM,AVI,3GP,FLV,H64,ACC,FLA,MP3,M4A,8K,6K,4K,2K,1080,720,480,360等

3、自己编写油猴脚本

(1)先了解下脚本的元数据块:

    元数据块是描述脚本的一个用户脚本部分。它通常包含脚本名称,命名空间,描述和包含和排除规则。元数据块出现在JavaScript行注释中,可能会出现在脚本内的任何位置, 但通常靠近文件的顶部。元数据参考文档在这里。

示例 备注
@name @name  脚本名称 脚本的名称。该项将显示在页面的标题以及链接内容,必填项
@description @description  脚本功能描述 脚本功能的描述,显示在脚本标题下面,必填项
@namespace @namespace http://diveintogreasemonkey.org/download/ 这是一个 URL,用它来区分名称相同但是作者不同的用户脚本。如果您有一个域名,您可以使用它作命名空间。
@version @version  0.0.1 脚本的版本标记将使用 Mozilla 版本格式 并显示于脚本的简介页面,必填项
@match @match  *://www.52pojie.cn/* 定义脚本要生效的 url 地址,该 url 地址可以使用正则匹配。  
@include @include * 可选的,表示在指定的网站上执行您的用户脚本。可以明确的指定一个 URL,或者用通配符 * 来代替域名或路径中的部分字符。
@exclude   可选的,表示在指定的网站上不执行用户脚本。
@require @require http://cdn.bootcss.com/jquery.min.js 引用外部脚本到您的脚本
@grant

@grant GM_setValue

@grant GM_setClipboard

用于添加GM_ 函数到白名单,例如unsafeWindow对象和一些强大的window函数。如果没有给出@grant标签Tampermonkey会猜测脚本需要。如果使用// @grant none,沙箱将被禁用,脚本将直接在页面上下文中运行。在此模式下,没有GM_ 函数,但GM_info属性仍然可用。
@updateURL
@installURL,  @downloadURL
  告知用户脚本管理器应该在哪个地址获取脚本更新。
@license   脚本所使用的许可协议名称或地址,该协议需包含用户是否允许二次分发  或修改  脚本的权利。不提供许可协议则表示用户仅允许个人使用且不得二次分发;该协  议将在脚本的简介页面显示。
@supportURL   用户可获得该脚本技术支持的链接地址 (如:错误反馈系统、论坛、电子  邮件),该链接将显示在脚本的反馈页面。
@contributionURL   用于捐赠脚本作者的链接,该链接将显示在脚本的反馈页面。
@contributionAmount   建议捐赠金额,请配合 @contributionURL 使用。
@compatible   标记此脚本与某个浏览器兼容,兼容性信息将显示在脚本的简介页面上。
@incompatible   标记此脚本与某个浏览器不兼容,兼容性信息将显示在脚本的简介页面  上。

    元数据块必须遵循以下格式:

// ==UserScript==
// @key value
// ==/UserScript==

(2)以微博视频的下载辅助为例子:

  • 第一步,先把最基本的框架搭好
// ==UserScript==
// @icon            http://weibo.com/favicon.ico
// @name            微博视频下载助手
// @namespace       [url=mailto:1649991905@qq.com]1649991905@qq.com[/url]
// @author          猎隼丶止戈
// @description     下载微博视频
// @match           *://weibo.com/tv/v/*
// @require         http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// @version         0.0.1
// @grant           GM_addStyle
// ==/UserScript==
(function () {
    'use strict';
 
})();
  • 第二步,编写下载弹出框与获取文件名的工具对象: 
var videoTool = {
    //获取文件名
    getFileName: function (url, rule_start, rule_end) {
            var start = url.lastIndexOf(rule_start) + 1;
            var end = url.lastIndexOf(rule_end);
            return url.substring(start, end);
        },
        //弹出下载框
        download: function (videoUrl, name) {
            var content = "file content!";
            var data = new Blob([content], {
                type: "text/plain;charset=UTF-8"
            });
            var downloadUrl = window.URL.createObjectURL(data);
            var anchor = document.createElement("a");
            anchor.href = videoUrl;
            anchor.download = name;
            anchor.click();
            window.URL.revokeObjectURL(data);
        }
};
  • 第三步,生成一个下载按钮,并嵌入页面:
//与元数据块中的@grant值相对应,功能是生成一个style样式
GM_addStyle('#down_video_btn{color:#fa7d3c;}');
 
//视频下载按钮的html代码
var down_btn_html = '<li>';
down_btn_html += '<a href="javascript:void(0);" id="down_video_btn" class="S_txt2" title="视频下载">';
down_btn_html += '<span class="pos">';
down_btn_html += '<span class="line S_line1" node-type="comment_btn_text">';
down_btn_html += '<span>';
down_btn_html += '<em class="W_ficon ficon_video_v2 S_ficon">i</em>';
down_btn_html += '<em>视频下载</em>';
down_btn_html += '</span>';
down_btn_html += '</span>';
down_btn_html += '</span>';
down_btn_html += ' <span class="arrow"><span class="W_arrow_bor W_arrow_bor_t"><i class="S_line1"></i><em class="S_bg1_br"></em></span></span>';
down_btn_html += ' </li>';
 
//将以上拼接的html代码插入到网页里的ul标签中
var ul_tag = $("div.WB_handle>ul");
if (ul_tag) {
    ul_tag.removeClass("WB_row_r3").addClass("WB_row_r4").append(down_btn_html);
}
  • 最后一步,获取播放器(video)对象中的视频地址并编写下载按钮的单击事件:
$(function () {
    //获取播放器(video)对象
    var video = $("video");
    var video_url = null;
    if (video) {
        video_url = video.attr("src"); //获取视频链接地址
    }
 
    //执行下载按钮的单击事件并调用下载函数
    $("#down_video_btn").click(function () {
        if (video_url) {
            videoTool.download(video_url, videoTool.getFileName(video_url, "/", "?"));
        }
    });
});
  • 完整代码:
// ==UserScript==
// @icon            http://weibo.com/favicon.ico
// @name            微博视频下载助手
// @namespace       [url=mailto:1649991905@qq.com]1649991905@qq.com[/url]
// @author          猎隼丶止戈
// @description     下载微博视频
// @match           *://weibo.com/tv/v/*
// @require         http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// @version         0.0.1
// @grant           GM_addStyle
// ==/UserScript==
(function () {
    'use strict';
 
    //与元数据块中的@grant值相对应,功能是生成一个style样式
    GM_addStyle('#down_video_btn{color:#fa7d3c;}');
 
    //视频下载按钮的html代码
    var down_btn_html = '<li>';
    down_btn_html += '<a href="javascript:void(0);" id="down_video_btn" class="S_txt2" title="视频下载">';
    down_btn_html += '<span class="pos">';
    down_btn_html += '<span class="line S_line1" node-type="comment_btn_text">';
    down_btn_html += '<span>';
    down_btn_html += '<em class="W_ficon ficon_video_v2 S_ficon">i</em>';
    down_btn_html += '<em>视频下载</em>';
    down_btn_html += '</span>';
    down_btn_html += '</span>';
    down_btn_html += '</span>';
    down_btn_html += ' <span class="arrow"><span class="W_arrow_bor W_arrow_bor_t"><i class="S_line1"></i><em class="S_bg1_br"></em></span></span>';
    down_btn_html += ' </li>';
 
    //将以上拼接的html代码插入到网页里的ul标签中
    var ul_tag = $("div.WB_handle>ul");
    if (ul_tag) {
        ul_tag.removeClass("WB_row_r3").addClass("WB_row_r4").append(down_btn_html);
    }
 
    var videoTool = {
        //获取文件名
        getFileName: function (url, rule_start, rule_end) {
                var start = url.lastIndexOf(rule_start) + 1;
                var end = url.lastIndexOf(rule_end);
                return url.substring(start, end);
            },
            //弹出下载框
            download: function (videoUrl, name) {
                var content = "file content!";
                var data = new Blob([content], {
                    type: "text/plain;charset=UTF-8"
                });
                var downloadUrl = window.URL.createObjectURL(data);
                var anchor = document.createElement("a");
                anchor.href = videoUrl;
                anchor.download = name;
                anchor.click();
                window.URL.revokeObjectURL(data);
            }
    };
 
    $(function () {
        //获取播放器(video)对象
        var video = $("video");
        var video_url = null;
        if (video) {
            video_url = video.attr("src"); //获取视频链接地址
        }
 
        //执行下载按钮的单击事件并调用下载函数
        $("#down_video_btn").click(function () {
            if (video_url) {
                videoTool.download(video_url, videoTool.getFileName(video_url, "/", "?"));
            }
        });
    });
 
})();

 参考:https://www.52pojie.cn/thread-614101-1-1.html

            https://my.oschina.net/u/2268567/blog/828528

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/MOU_IT/article/details/90370850
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 18:51:27
  • 阅读 ( 2516 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢