### [代理IP怎么配Tampermonkey做自动化?浏览器脚本注入和定时任务](https://www.jiyueip.com/article/13591) **Published:** 2026-07-30T09:50:26 **Author:** 斑斓助理 **Excerpt:** 不想装Python环境、不想学Selenium写代码——用Tampermonkey浏览器脚本也能做简单的网页自动化,配合代理IP轮换、定时刷新、数据抓取。适合轻量级的自动化需求,不需要编程基础。 Tampermonkey是什么、能做什么 T 不想装Python环境、不想学Selenium写代码——用Tampermonkey浏览器脚本也能做简单的网页自动化,配合代理IP轮换、定时刷新、数据抓取。适合轻量级的自动化需求,不需要编程基础。 ## Tampermonkey是什么、能做什么 Tampermonkey是一个浏览器扩展(Chrome/Firefox/Edge),可以注入自定义JavaScript到任意网页,在页面加载时自动执行。俗称油猴脚本。能做:自动刷新页面(定时或手动)、自动点击按钮(比如签到)、抓取页面数据并导出、修改页面样式、自动填充表单。 配合代理IP的场景:用Tampermonkey写一个自动刷新+抓取数据的脚本,再配合SwitchyOmega定时切换代理IP——每切换一次IP刷新一次目标页面抓一次数据——不用写一行Python。 ## 三步搭建自动化环境 **第一步**:装Tampermonkey扩展→Chrome/Edge商店搜”Tampermonkey”→安装。 **第二步**:装SwitchyOmega(参考第28篇ID 13567),配好你的代理IP。天行IP静态代理月付6元起,邀请码 **blsj** 享折扣。 **第三步**:写脚本或装现成的。本文下面给几个常用脚本模板,复制粘贴改URL就能用。 ## 脚本一:自动刷新+监控页面变化 ``` // ==UserScript== // @name 页面自动刷新监控 // @match *://目标网站.com/* // @grant none // ==/UserScript== (function() { 'use strict'; const CHECK_INTERVAL = 300000; // 5分钟刷新一次 // 记录页面变化 const prevContent = document.body.innerText.length; localStorage.setItem('prevLength_'+location.hostname, prevContent); setTimeout(() => location.reload(), CHECK_INTERVAL); // 每次加载时检查变化 const oldLen = parseInt(localStorage.getItem('prevLength_'+location.hostname) || 0); const newLen = document.body.innerText.length; console.log(`页面内容长度: ${oldLen} -> ${newLen}`); localStorage.setItem('prevLength_'+location.hostname, newLen); })(); ``` ## 脚本二:自动抓取并导出数据 ``` // ==UserScript== // @name 自动抓取页面数据 // @match *://*.目标电商网站.com/* // @grant GM_setClipboard // ==/UserScript== (function() { 'use strict'; const items = []; document.querySelectorAll('.product-item').forEach(el => { items.push({ title: el.querySelector('.title')?.innerText?.trim(), price: el.querySelector('.price')?.innerText?.trim(), time: new Date().toISOString() }); }); // 存到localStorage累积 const history = JSON.parse(localStorage.getItem('myData') || '[]'); history.push(...items); localStorage.setItem('myData', JSON.stringify(history.slice(-1000))); console.log(`抓取${items.length}条,总计${history.length}条`); })(); ``` 然后用另一个脚本导出数据:在Tampermonkey里建个脚本,点运行→把localStorage的数据导出为CSV下载。 ## 脚本三:配合SwitchyOmega切换IP Tampermonkey不能直接控制SwitchyOmega,但能通过触发按键快捷键来间接切换。SwitchyOmega设置里给每个情景模式绑一个快捷键(比如Ctrl+Shift+1切到代理模式1、Ctrl+Shift+2切到代理模式2)。 Tampermonkey脚本在切换前刷新页面重新抓取: ``` // 定时自动切换代理并重新抓取 (function() { 'use strict'; const proxies = ['Ctrl+Shift+1', 'Ctrl+Shift+2', 'Ctrl+Shift+3']; let currentIndex = 0; setInterval(() => { // 触发快捷键切换代理 const keys = proxies[currentIndex % proxies.length]; // 注意:Tampermonkey不能直接模拟键盘事件触发系统快捷键 // 这里是伪代码,实际需要手动切换或配合AutoHotkey currentIndex++; setTimeout(() => location.reload(), 2000); }, 600000); // 10分钟切换一次 })(); ``` Tampermonkey的局限是不能直接模拟系统级按键。完整的自动切换需要配合AutoHotkey(Windows)或Hammerspoon(Mac)做系统级按键模拟——超出了纯浏览器自动化的范围。 ## Tampermonkey和Selenium的适用边界 | 场景 | Tampermonkey | Selenium | | --- | --- | --- | | 单页面定时刷新监控 | ✅ 最简单 | 可以但杀鸡用牛刀 | | 多页面批量抓取 | ❌ 难管理 | ✅ 天生适合 | | 模拟点击和填表单 | ✅ | ✅ | | IP轮换 | 需配合其他工具 | ✅ 原生支持 | | 无头模式 | ❌ 必须是可见窗口 | ✅ headless模式 | | 学习门槛 | JavaScript基础 | Python+编程基础 | Tampermonkey适合轻量场景——监控几个页面、简单的签到和表单填充。量大了还是要学Selenium——参考第24篇(ID 13557)。 ## 常见问题 ### Tampermonkey脚本和网页自带的JS冲突? 会。某些网站用CSP(内容安全策略)限制外部脚本注入。Tampermonkey在@match的域名下自动运行——如果页面JS对你的修改做了防护,脚本可能不生效。用@grant none可以降低冲突概率。 ### 抓取的数据怎么导出来? Tampermonkey的GM\_setValue存数据到扩展存储→写一个showData()函数把数据渲染到页面上的弹窗里→复制粘贴出来。或者直接在浏览器Console里JSON.parse(localStorage.getItem(‘myData’))手动导出。 ### 可以24小时挂着自动跑吗? 理论上可以但实际不行——浏览器页面可能因为内存泄漏崩溃、电脑休眠后脚本停止、网络波动导致页面加载失败。长时间自动化还是用Python+Selenium跑在服务器上更稳定。 **Tags:** 代理IP, 数据采集合规 **Categories:** 行业洞察 ---