尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

油猴脚本入门指南:2023年精选实用脚本与安全使用技巧

油猴脚本入门指南:2023年精选实用脚本与安全使用技巧 油猴Tampermonkey这个东西我前前后后用了快十年。第一次知道它是因为有个同事说靠着几个脚本能让浏览器变得“不像浏览器”当时我还不信直到自己装了几个之后才发现同一个网页别人看到的是满屏广告和锁死的复制按钮我这边清爽干净点几下就能把需要的内容抓下来。很多朋友一听“油猴脚本”就以为是程序员才会玩的东西其实真不是。你只要能装浏览器插件、会点一下安装按钮就能用脚本解决大量日常浏览问题。这篇文章我不打算做成那种堆网址的清单而是把我2023年实际在用的、测试过稳定好用的脚本整理出来同时把安装、判断、防坑的整套逻辑讲清楚。适合三类人被网页广告和复制限制烦到不行的小白、想提升日常信息获取效率的职场人、以及想把浏览器调教得更顺手的开发者。1. 油猴脚本到底是怎么工作的为什么别人的脚本你敢用1.1 一个用户脚本的本质很多人第一次接触油猴脚本时会下意识觉得这是个高深的东西。其实用户脚本userscript本质就是一段 JavaScript 代码由 Tampermonkey 这个浏览器扩展负责注入到网页里执行。你可以把它理解成给网页“打补丁”——不修改网站服务器上的任何东西只是在浏览器本地把页面加载完后再把脚本加进去跑一遍该删的元素删掉、该加的按钮加上、该改的样式改掉。这里面有几个关键概念值得搞清楚。首先是匹配规则脚本头部有一段match或include规定了这个脚本只在哪些网址生效。其次是注入时机Tampermonkey 提供了document-start、document-end、document-idle三种时机很多脚本失效其实就挂在时机选择上。最后是 GM 系列 API比如GM_setValue本地存储数据、GM_xmlhttpRequest跨域请求、GM_addStyle注入样式这些是浏览器原生 JavaScript 没有的能力也是 Tampermonkey 价值最大的地方。需要明确的是Tampermonkey 只是管理脚本的“容器”它本身不生产脚本。脚本来源是 GreasyFork 这类用户脚本社区全球开发者把自己写的脚本传上去所有人都能安装。整个链路就是浏览器 → Tampermonkey 扩展 → 用户脚本 → 网页页面。1.2 安装 Tampermonkey 的前置条件安装扩展本身没什么难度但有几个细节值得说一下。Chrome 用户可以直接去 Chrome 网上应用店搜索 Tampermonkey点击安装就可以。Edge 用户去 Microsoft Edge 加载项商店搜索也行。Firefox 用户则去 Firefox Add-ons 官方站点。这里有一个非常容易被忽略的点很多浏览器在市场里能搜到一堆名字差不多的扩展比如 “Tampermonkey Beta”“Tampermonkey Stable”甚至还有冒充的 “Tampermonkey Pro”。官方版本就是 Tampermonkey黑色图标带个数字角标的是 Beta 版稳定版图标是黑色带个 TM 字样。我建议普通用户只安装稳定版Beta 版适合喜欢尝鲜的。如果你所在的网络环境访问不了扩展商店也可以去 Tampermonkey 官网下载 crx 文件离线安装。Chrome 在地址栏输入chrome://extensions打开开发者模式把下载好的 crx 文件直接拖进去就能装。不过新版 Chrome 对非商店扩展限制变严了有可能提示“无法从该网站添加应用”这时候可以先把 crx 后缀改成 zip解压后通过“加载已解压的扩展程序”安装启动时浏览器会提示一下手动允许就行。还有一个非常实用但很多人不知道的点一个浏览器只建议装一个脚本管理器。同时装 Tampermonkey 和 Violentmonkey暴力猴不是不行但容易造成脚本重复执行、误判变量冲突。我试过两个管理器同时开着某些页面会明显卡顿排查起来特别头疼。选一个用得顺手的就好我个人是 Tampermonkey 主力、Violentmonkey 备用。1.3 脚本来源GreasyFork 到底怎么用脚本社区里最主流的是 GreasyFork打开后就是个脚本搜索引擎。首页会展示热门脚本右上角可以搜索关键词。这里有几个筛选技巧一是看安装量低于一万的脚本要谨慎不是说低安装量就不好而是说明用的人少出问题没人反馈二是看最近更新日期2023 年还在活跃维护的脚本优先如果最后更新是两年前大概率已经失效三是看反馈区和评论区装之前先扫一眼别人反馈的问题能帮你提前避开一堆雷。在 GreasyFork 上安装脚本很简单点绿色“安装此脚本”按钮Tampermonkey 会弹出安装确认页能看到脚本的作者、权限、源码点“安装”按钮就完事了。脚本更新时 Tampermonkey 会通过updateURL和downloadURL检测新版本默认自动下载但安装前它会再弹一次确认这种防呆设计我觉得非常好。2. 2023 年我实际在用的油猴脚本清单按场景分类2.1 视频与下载场景最值得装的一组视频类脚本是很多人接触油猴的第一个理由我也是一样。先说 Bilibili Evolved这个脚本在 B 站用户群里几乎是“标配”功能集中在净化页面、自定义界面、视频下载、倍速控制、截图等十几个模块。2023 年我实测下来最常用的功能是去广告和下载视频。去广告不是指绕过付费内容而是干掉首页信息流里穿插的推广卡片、播放页侧栏的推广模块视觉上清爽非常多。下载视频的功能走的是“解析画质链接”的路线装完之后播放器下方会多一个下载按钮可以自己选择清晰度个人学习留存完全够用。注意它需要配合额外的解析服务或者浏览器内置 fetch 能力如果下载失败先去看一下设置面板里的“下载”模块有没有启用。再说网盘直链下载助手。2023 年这款脚本经历了好几次改版目前主要功能是把网盘文件的下载链接提取出来配合 IDM、NDM 等下载工具使用。说实话网盘下载限制这件事本身就有点无奈但这个脚本在免客户端下载、大批量文件转存这些场景下确实很实用。有一点必须提醒脚本会请求登录后的 Cookie 信息来模拟真实请求所以一定只从 GreasyFork 官方页面安装不要从第三方网站下载“绿色版”“破解版”免得不小心把账号信息交给不明来源的脚本。视频解析下载类还有一个叫硕鼠的脚本最早是做联合解析的后来因为各家视频站改版频繁维护进度跟不上2023 年实际效果已经打了不少折扣。如果你的目标网站不在 Bilibili Evolved 的列表里可以试试 m3u8 下载工具类脚本比如 “m3u8 downloader” 相关的脚本原理是抓取页面里的视频流地址再通过本地播放器或工具合并。这类脚本对普通用户来说稍有一点门槛但胜在兼容性强。2.2 购物比价与生活效率小脚本解决大问题购物场景的油猴脚本核心是“比价”和“价格监控”。购物党比价是我用了三年的脚本装完之后在京东、淘宝、苏宁等商品页面会自动显示历史价格曲线还会在标题下方给出全网比价结果。2023 年我亲测下来它的价格采集依然稳定尤其是家电类大件的优惠跨度一眼就能看出“双十一前先涨价再降价”的把戏。价格监控类脚本我推荐京价保。它的逻辑是监控你已购商品的价格变动一旦发现降价就自动申请价格保护。这对经常在电商平台买东西的人来说特别实用。设置时需要注意京价保需要你登录购物网站并授权订单数据装完不要乱点“授权第三方”之类的选项直接使用默认的本地监控模式就行。我遇到过几次误报后来发现是脚本把“领券后价格”也算进去了这个在设置里关掉“券后价”选项就能解决。生活效率类里有一个小脚本我很推荐自动展开全文。很多网站和社区正文会被折叠需要点击“展开阅读全文”才能看完整内容这个脚本的原理就是检测到折叠按钮后自动模拟点击那些被隐藏的段落直接铺开。2023 年它应对大多数网站的“登录可见全文”和“展开阅读全文”还是够用的不过部分强验证码保护的网站需要手动过一下验证这也是没办法的事。2.3 打破网页限制与信息获取复制的痛它懂“网页不让复制”是我收到的求助里出现频率最高的问题。网上很多资料站、问答平台、文库都会把复制功能锁掉右键菜单被禁用鼠标选中文本还弹个提示。针对这个事我一直在用的是“网页限制解除”这个脚本原理很朴素重写页面的oncontextmenu、oncopy、onselectstart事件把这些限制标记删掉再从样式层面强制允许文本选中。2023 年绝大多数新闻站、博客站都能正常解除文库类网站部分失效原因是它们不是简单的禁右键而是用 canvas 绘制文字这种情况脚本就没辙了。在线文档和文库里的内容想直接复制出来另一个常用思路是“转 Markdown 提取”。有一款叫 “markdown here” 风格的脚本能把网页正文一键转换成 Markdown 格式并复制到剪贴板对经常写文档的人来说效率翻倍。我用它的场景主要是把大佬博客里的代码块、表格完整搬到自己的笔记里不会丢格式。信息获取类还有一个必装脚本AC-baidu。2023 年它改名成了“AC-baidu重定向优化”主要功能是去除百度搜索结果里的重定向链接、广告推广位以及把百度系页面里的“百度推荐”广告块去掉。搜索结果点开之后不再是经过跳转的链接而是直达目标网站省掉中间等待时间。类似的去重定向脚本还有 “跳过网站等待” 这类核心都一样识别跳转中间页并自动跳过。2.4 论坛与日常工具把“脏东西”过滤掉如果你经常逛贴吧、知乎、豆瓣会发现信息流里混着不少推广内容、直播卡片和话题营销。贴吧这边的“贴吧净化”脚本属于用了就回不去的类型2023 年测试下来它能屏蔽帖子列表里的直播推广、商业引流帖、下载 App 的引导卡片还能把楼中楼广告折叠掉。功能开关都放在设置面板里可以自己选“全屏蔽”还是“部分折叠”。知乎那边我用的是一款叫 “知乎去广告” 的脚本作用是屏蔽知乎首页信息流里的课程推广、盐选会员弹窗、关注推荐卡片。知乎改版比较频繁这类脚本时不时会失效通常等作者更新就能恢复。我的建议是不用装太多个不同作者的同类脚本因为知乎页面上脚本如果同时操作同一个 DOM 节点会产生冲突反而导致页面渲染出问题。日常工具类里网页暗黑模式脚本也是比较受欢迎的尤其晚上加班查资料时非常友好。原生方案是给所有页面套一层反转滤镜副作用是图片颜色也会反转看着很别扭。好一点的 CSS 脚本会针对常见网站写规则只改背景和文字颜色不动图片。我用的是一个叫 “Dark Reader for every website” 风格的油猴版实测对技术博客、文档站的支持很好对普通商业网站偶尔会有乱样式的风险调整配置里的“亮度”“对比度”可以缓解。还有一个细节小工具叫 “自动刷新页面”适合需要抢预约、看库存变化的场景。它支持定时刷新和异常检测刷新可以设置“页面关键词出现后停止刷新”。这个功能很实用比如你盯着一个商品补货页面设置好关键词之后页面一旦出现“立即购买”字样就自动停止刷新避免手忙脚乱。2.5 开发者与专业人群办公效率提升程序员和数据分析师群体里油猴脚本同样能提升日常效率。我给团队推荐过 “GitHub 增强” 类脚本功能包括仓库文件快速下载、代码阅读模式、仓库大小显示、README 渲染优化。2023 年这类脚本功能比较稳定对于经常看开源项目的人来说省掉了反复点击文件和切换分支的时间。JSON 格式化查看器也是一类高频脚本。开发环境下接口返回的数据经常是一长串压缩过的 JSON肉眼很难读。装了格式化脚本之后浏览器里直接展示成可折叠的树状结构支持复制路径、搜索关键词、查看数据类型。我调试接口时的习惯是直接开一个空白标签页访问接口地址脚本会自动格式化比复制到在线工具再粘回去快得多。代码相关的脚本还有很多比如代码高亮增强、代码块复制按钮、CSDN 页面净化把复制代码需登录、弹窗广告去除。这里要提醒一句开发者用的脚本最好还是自己看一下源码毕竟大家天天登着各种后台系统脚本如果窃取 Cookie后果比普通用户严重得多。3. 脚本装多了会出事吗——质量判断与安全红线3.1 权利越大责任越大GM 系列 API 能干的事油猴脚本的能力边界比你想象的大。它不仅能改页面样式、加按钮还能读取页面里的输入框内容、拦截网络请求、向任意域名发送请求GM_xmlhttpRequest、读取和写入本地存储GM_setValue/GM_getValue甚至能读取你在页面上填写的账号密码、Cookie。形象一点说把页面交给油猴脚本运行就像把家门钥匙交给一个钟点工正常脚本只打扫你指定的房间恶意脚本能把你家翻个底朝天。所以不要因为“装个脚本而已”就掉以轻心。2023 年用户脚本社区出现过个别脚本被下架的情况多是因为作者在脚本里夹带了收集用户访问记录的代码。幸好 GreasyFork 有公开的源码审查机制脚本安装前默认就会展示源码页面哪怕看不懂全部代码至少可以看一下它申请了哪些权限。如果一个改页面样式的脚本居然申请了GM_xmlhttpRequest并往陌生域名发请求那就要高度警惕。3.2 我判断一个脚本能不能用的五条标准这几年我形成了一个固定习惯装任何脚本之前先做一轮“体检”不需要太多专业知识按下面几条过一遍就行。一是看安装量和热度。一个脚本如果只有几百的安装量不见得有问题但你要花更多时间去确认它的可靠性如果是十几万甚至百万级安装量的脚本至少说明它被大量用户验证过。二是看更新频率。2023 年还在更新、近期有提交记录的脚本说明作者还在维护如果停更超过一年大概率已经不适配新版浏览器或网站改版。三是看权限请求范围。装脚本时 Tampermonkey 会列出脚本需要的权限比如读取页面内容、跨域请求、访问剪贴板。如果功能简单却权限多多就要打个问号。四是看源码是否公开可读。GreasyFork 上每个脚本都有源码链接点进去扫一眼。看不懂没关系重点看有没有压缩成一整行的混淆代码——正规脚本基本都保持可读格式。五是看评论区。评论区是最好的反馈渠道失效、报错、广告注入这些问题用过的用户都会留言。3.3 容易踩的几类坑第一类坑是第三方下载站的“整合包”。有些人为了省事去下载“XX个精编油猴脚本合集包”这类包里经常混着已经停止维护的老脚本夹带私货的概率也高。第二类坑是伪装官方弹出的更新提示。正常油猴脚本更新会在 Tampermonkey 的角标上提示如果网页上主动弹一个“您的脚本需要更新”并让你下载文件果断关掉那基本是钓鱼。第三类坑是“全功能增强版”脚本。有的脚本号称一个全站通用覆盖所有网站这类脚本要么体积巨大导致卡顿要么在悄悄采集你的浏览记录。我的建议是一个脚本专注做一个功能覆盖的网站不要太宽。如果不小心中了招处理方法也不复杂。先去 Tampermonkey 面板把可疑脚本停用再点击“编辑”按钮查看源码如果发现有发送数据到第三方域名的代码直接把脚本删掉。然后清一下浏览器缓存和 Cookie最后改一下重要网站的登录密码。绝大多数恶意脚本没有系统级权限清除后不会对电脑造成进一步影响。4. 常见问题与排查技巧实录4.1 脚本装了没反应、时灵时不灵这个问题大概是每年私信里最多的。第一反映先看开关状态点开 Tampermonkey 图标看这个脚本是不是灰的有时候装完默认没启用。第二看匹配规则脚本的match如果只匹配http://example.com/*你用https://www.example.com/访问自然不生效。第三看页面有没有被浏览器原生功能拦截比如某些浏览器会自动阻止注入式扩展运行需要到扩展设置里允许“在无痕模式/网页中运行”。第四看是不是缓存问题强制刷新一下页面很多时候是旧脚本缓存卡住了。排除这些基本问题后如果脚本还是不工作大概率是网站改版了。2023 年很多知名网站频繁调整 DOM 结构脚本选择器匹配不到旧节点就会失效。这种时候解决方案只有一个去脚本源码页面看有没有人反馈同样的问题等作者更新或者去 GreasyFork 搜一下有没有替代脚本。4.2 脚本之间互相打架怎么办脚本冲突在装了五六个以上脚本后会逐渐出现。典型表现是页面元素重复、按钮点击没反应、控制台报“Cannot read properties of null”一类错误。原因通常是多个脚本同时监听同一个事件或者同时操作同一个 DOM 节点后执行的脚本覆盖了先执行的效果。解决思路是先确认冲突范围。打开浏览器的“扩展管理”把 Tampermonkey 停用然后逐一启用脚本每启用一个就去目标页面刷新一次看问题什么时候出现。定位到冲突脚本之后优先考虑二选一或者去两个脚本各自的高级设置里调整执行顺序。Tampermonkey 里每个脚本都可以在设置页里修改“执行位置”和“排除页面”把不同脚本的执行顺序错开能解决大部分冲突。实在不行就需要会一点代码基础在脚本源码里将执行时机整体后移一个周期比如从document-end改成document-idle后加一个 setTimeout。4.3 网页卡顿、内存占用飙升2023 年常用的浏览器开几十个标签页本来就吃内存再叠加一堆油猴脚本卡顿就很常见了。脚本造成卡顿的原因有两种一种是脚本数量太多每个脚本都要跑一遍自己的初始化流程即使没匹配到目标页面也会空转另一种是部分脚本用了轮询机制定时去监听 DOM 变化页面一有风吹草动就要重新执行一遍逻辑。排查方法很简单用“二分法”。先把所有脚本关闭确认页面流畅度恢复正常然后依次启用一半脚本刷新页面测试卡顿出现了就在这一半里继续二分通常两三轮就能定位到罪魁祸首。找到之后有几种选择如果脚本提供“懒执行”或“仅在特定域名下运行”的选项就把它的匹配范围缩小如果脚本质量本身不高果断换个更轻量的替代品。我个人的习惯是长期不用的脚本直接删除而不是禁用——禁用的脚本虽然不执行但 Tampermonkey 的面板还是要加载它的元数据积少成多也会影响启动速度。4.4 脚本更新了反而坏了怎么办有些时候不是你主动更新是 Tampermonkey 检测到脚本有新版就自动下载结果新版功能没提升反而出了 bug或者新版加了你不想要的行为。这种情况在脚本圈子里叫“版本回退”。回退的方法不复杂。打开 Tampermonkey 管理面板进入对应脚本的“编辑”页面把version改成旧版本号再去 GreasyFork 脚本页面的文件历史里找到旧版本源码粘贴回去保存。注意 Tampermonkey 会自动检测更新如果你不希望它再次覆盖可以在脚本设置的“更新”栏目里把“更新行为”改成“手动检查”甚至直接关闭“检查更新”。如果你对现有脚本做过自定义修改就建议手动管理更新否则新版本一覆盖你的改动全部白做。4.5 关于“检测到脚本/异常行为”的提示部分网站会探测“浏览器异常行为”比如疯狂刷新页面、自动领券、自动提交订单这类操作。2023 年我见过不少购物网站、预约平台的账号因为使用自动化脚本被临时限制登录严重的甚至被要求修改密码。油猴脚本在本地运行但它在页面上的操作痕迹是可以被网站前端行为分析识别出来的尤其是那种高频并发请求、瞬间点击多个按钮的操作。我的建议很直接涉及账号安全和金钱交易的网站网上银行、电商主账号、企业后台尽量不要装自动抢购、自动领券、自动注册类脚本。轻则功能失效重则账号受到限制得不偿失。如果只是看看价格、比比价、去个广告这类只读型脚本相对稳妥但也要记住“脚本给你的便利不等于平台方认可这种行为”油猴脚本目前处于灰色地带尽量用在自己主导的、不干扰平台正常秩序的场合。5. 从用脚本到写脚本的进阶路径5.1 先是拆再是写很多人用了一段时间油猴脚本之后会忍不住想看“这脚本到底怎么写的”。这是个很好的起点。Tampermonkey 面板的“编辑”按钮可以直接打开脚本源码先从一个简单的脚本看起比如前面提到的“网页限制解除”去掉空行和注释核心代码其实只有几十行。看懂它怎么绑定事件、怎么修改样式基本就掌握了用户脚本的骨架。千万不要一上来就去看几千行的大型脚本会直接劝退。5.2 最小可运行的油猴脚本长什么样写一个油猴脚本文件头部必须有一段元数据注释Tampermonkey 靠它识别脚本名称、匹配页面、申请权限。下面这个例子是去除某个页面广告模块的最小脚本// UserScript // name 去掉示例广告 // namespace example.com // version 1.0 // description 移除此页面中的广告横幅 // match https://example.com/* // run-at document-end // grant none // /UserScript (function () { use strict; function removeAd() { const ad document.querySelector(.ad-banner); if (ad) { ad.remove(); return true; } return false; } if (!removeAd()) { const observer new MutationObserver(() removeAd()); observer.observe(document.body, { childList: true, subtree: true }); } })();这个脚本的核心技巧在最后一段如果页面加载完没有找到广告节点就启动一个 MutationObserver 监听 DOM 变化等广告节点被动态插入时再删除。视频站、资讯站的广告经常是异步加载的只用一次性的查询经常会失败。这段代码是我 2023 年写脚本时最常用的骨架做信息流净化、弹窗移除都够用。5.3 本地调试与发布调试油猴脚本不需要额外 IDE浏览器控制台就是最好的工具。脚本里可以用console.log输出调试信息Tampermonkey 的“浏览器控制台”会显示脚本的报错和执行日志。如果脚本里用了GM_xmlhttpRequest可以在 Tampermonkey 的面板里查看跨域请求的日志方便确认请求是否发出去、返回了什么。写完之后可以发布到 GreasyFork 上供别人使用。发布前注意几个细节name要起一个容易搜到的名字description要简洁说明功能match要精确匹配目标网站不要写*://*/*这种通配所有网站的匹配规则——个人脚本覆盖全站既不安全也会引起性能问题。发布后记得及时回复评论区的问题一个活跃维护的脚本才能累积出信任度。写在最后我的脚本维护习惯前前后后用过上百个油猴脚本2023 年最终留在浏览器里的其实只有十几个。我的习惯是每个季度专门抽十分钟打开 Tampermonkey 管理面板把所有脚本按“最近使用时间”排一下序超过两个月没点亮的脚本直接删除。脚本装得再多不如装得精。还有一个我踩过几次坑之后养成的习惯凡是涉及登录态、Cookie、跨域请求的脚本安装前必须去 GreasyFork 页面看一眼源码哪怕只是扫一眼有没有XMLHttpRequest调用心里也有个数。油猴脚本这个东西用好了它是浏览器的“外挂”用不好就是给自己埋雷。希望上面这些经验能帮你装得放心、用得顺手。
返回列表