如何在Badoo.com通过Tampermonkey脚本触发投票按钮点击?
Tampermonkey自动投票问题:绕过事件限制与混淆代码
一、先定位投票的核心触发逻辑
直接模拟事件无效时,先揪出页面实际处理投票的底层逻辑:
- 用调试器断点抓调用栈:打开Firefox开发者工具「调试器」面板,在「事件监听器断点」里勾选Keyboard下的
keydown/keyup,手动按1点赞触发暂停,查看「调用栈」从下往上找最贴近业务的函数(比如likeHandler、vote这类命名)。 - 全局监听事件注册:用Tampermonkey的
unsafeWindow覆盖页面的addEventListener,打印所有键盘事件监听函数,直接定位处理1/2键的逻辑:
const originalAdd = unsafeWindow.addEventListener; unsafeWindow.addEventListener = function(type, handler) { if (type === 'keydown') { console.log('键盘事件处理函数:', handler.toString()); } return originalAdd.call(this, type, handler); };
- 格式化混淆代码:在调试器里找到Cn这类混淆函数,点击「美化代码」按钮({}图标)展开代码,分析它的逻辑——比如你贴的Cn函数涉及自定义
onSelect事件,可进一步查找Vn函数,看它如何获取事件监听器,或直接定位投票触发入口。
二、绕过isTrusted限制的实操方案
页面检测isTrusted(仅真实用户操作触发的事件为true),直接模拟事件无效,优先用以下方法:
1. 直接调用核心业务函数
如果找到页面全局的投票函数(比如unsafeWindow.doVote(1)),直接调用是最可靠的方案:
// ==UserScript== // @name 自动投票脚本 // @match 你的目标网站地址 // @grant unsafeWindow // ==/UserScript== (function() { 'use strict'; function autoProcess() { // 调用点赞函数(假设核心函数为doVote) if (unsafeWindow.doVote) { unsafeWindow.doVote(1); // 1点赞,2替换为跳过对应参数 } // 滑动到下一个资料 const nextItem = document.querySelector('.next-content'); if (nextItem) nextItem.scrollIntoView({behavior: 'smooth'}); // 定时循环,可根据页面加载速度调整间隔 setTimeout(autoProcess, 2500); } // 页面加载完成后启动 window.addEventListener('load', () => setTimeout(autoProcess, 1500)); })();
2. 用页面内部的事件触发方式
若找不到核心函数,试试调用页面自定义的事件构造器(比如你贴的dr类):
// 模拟页面自定义keydown事件 const keyEvent = new unsafeWindow.dr('keydown', 'keydown', null, {keyCode:49}, unsafeWindow.document); unsafeWindow.document.dispatchEvent(keyEvent);
3. 模拟可信事件的兜底方案
如果以上方法都无效,试试原生事件构造器(部分页面不会严格检测isTrusted):
function simulateKey(keyCode) { const event = new KeyboardEvent('keydown', { key: String.fromCharCode(keyCode), keyCode: keyCode, bubbles: true, cancelable: true, view: unsafeWindow }); unsafeWindow.document.body.dispatchEvent(event); } // 调用按1键点赞 simulateKey(49);
三、注意事项
- 必须给脚本加上
@grant unsafeWindow权限,否则无法访问页面全局变量和函数。 - 页面可能动态加载内容,可结合
setInterval或MutationObserver监听元素变化,避免找不到目标节点。 - 不要设置过短的定时间隔,避免被网站检测为机器人。
内容的提问来源于stack exchange,提问作者Fapka Master
相关产品推荐
相关产品推荐

