必须升级米侠浏览器至v3.8.2+并安装配置暴力猴,设置正确@match和@run-at规则,关闭干扰扩展,再通过Canvas二值化或OCR API实现验证码自动识别与填写。

想让米侠浏览器自动识别并填写网页验证码,绕过人工输入环节,节省重复操作时间,直接用 JavaScript 脚本调用 OCR 接口或解析简单图形码实现自动填充。
确认浏览器与脚本管理器基础就绪
这一步不能跳过——【旧版米侠浏览器(v3.7.0 及以下)完全无法执行 JS 自动化脚本,强行运行会静默失败且无报错提示】。打开米侠浏览器 → 点击右上角「菜单」→「设置」→ 左侧「高级」→ 查看是否存在「开发者模式」或「脚本注入」开关;若无,必须升级至 v3.8.2 或更高版本(v5.5.4.2 为当前推荐稳定版)。
安装暴力猴(Violentmonkey)扩展 → 点击右上角扩展图标 → 右键「暴力猴」→「管理扩展」→ 开启【在所有网站上运行】和【允许访问文件网址】;进入暴力猴主界面 → 左上角菜单 →「设置」→「通用」→ 确保「启用脚本」为开启状态。
配置脚本匹配规则与注入时机
脚本必须精准命中目标页面,否则连验证码图片都找不到。进入暴力猴脚本编辑页 → 检查头部 @match 规则:若目标页是 https://login.example.com/auth,只写 @match https://login.example.com/ 不生效,必须改为 @match https://login.example.com/auth* 或 @match https://login.example.com/*。
@run-at 必须设为 document-end —— 验证码 img 标签通常动态加载,太早执行会取不到元素;若页面使用懒加载或异步渲染,还需加 window.addEventListener('load', ...) 双重保险。
临时关闭「增强防护」「广告过滤」「网页防篡改」等扩展功能,它们会主动剥离 script 标签或拦截 canvas 读取操作,导致 OCR 步骤直接失败。
编写验证码自动填写脚本
方法一:适用于纯数字/字母图形验证码(无干扰线、无扭曲)
在脚本编辑区粘贴以下代码,替换其中的 input 元素选择器和 img 元素选择器:
```js
const img = document.querySelector('#verify-img'); // 替换为实际验证码图片选择器
const input = document.querySelector('#verify-code'); // 替换为实际输入框选择器
if (img && input) {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
ctx.drawImage(img, 0, 0);
const data = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
// 简单二值化:灰度 >128 设为 1,否则为 0
let code = '';
for (let i = 0; i const avg = (data[i] + data[i+1] + data[i+2]) / 3;
if (avg > 128) continue;
// 此处需接入字符分割+识别逻辑,简易版可预置模板匹配
}
// 示例:直接填固定值用于测试
input.value = 'ABCD';
input.dispatchEvent(new Event('input', { bubbles: true }));
}
方法二:对接第三方 OCR API(推荐用于复杂验证码)
需提前申请百度 OCR / 腾讯云 CAPTCHA API 密钥;脚本中用 fetch 发送 base64 图片数据,等待返回识别结果后再填入 input:
```js
const img = document.querySelector('#verify-img');
if (!img) return;
const canvas = document.createElement('canvas');
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
const ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
const base64 = canvas.toDataURL('image/png').split(',')[1];
fetch('https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: `access_token=YOUR_TOKEN&image=${base64}`
})
.then(res => res.json())
.then(data => {
if (data.words_result && data.words_result.length) {
const code = data.words_result[0].words.replace(/\s/g, '');
document.querySelector('#verify-code').value = code;
document.querySelector('#verify-code').dispatchEvent(new Event('input'));
}
});
绑定域名并启动自动填写
第一步:在暴力猴脚本管理页 → 找到刚保存的验证码脚本 → 点击右侧「编辑」→ 确认 @match 已覆盖目标页完整路径(如 https://login.example.com/*);
第二步:关闭所有已打开的目标网站标签页 → 新建标签页 → 手动访问 https://login.example.com/auth → 页面加载完成,观察地址栏左侧是否出现暴力猴图标亮起;
第三步:点击暴力猴图标 → 查看「最近运行日志」→ 若显示「✅ 执行成功」且 input 框已填入内容,说明脚本已正常工作;
第四步:刷新页面或触发验证码更新(如点击“换一张”),验证脚本能重复识别并填写——【若首次填写失败,请检查 canvas 跨域限制:目标图片必须同源或服务端已配置 Access-Control-Allow-Origin】。


















