使用Node.js和Puppeteer破解网易易盾滑动验证码
const puppeteer = require('puppeteer');
async function solveGeetest(url, username, password) {
const browser = await puppeteer.launch({
headless: false, // 设置为false以便于查看浏览器操作过程
args: ['--no-sandbox', '--disable-setuid-sandbox'] // 以防无权访问问题
});
const page = await browser.newPage();
await page.goto(url, { waitUntil: 'networkidle2' });
// 检查并解决滑动验证
await page.waitForSelector('.geetest_slider_button');
await page.click('.geetest_slider_button');
// 获取滑动位置
const slider = await page.$('.geetest_slider_button');
const boundingBox = await slider.boundingBox();
// 模拟滑动验证
await page.mouse.move(boundingBox.x + boundingBox.width / 2, boundingBox.y + boundingBox.height / 2);
await page.mouse.down();
await page.mouse.move(boundingBox.x + boundingBox.width * 0.9, boundingBox.y + boundingBox.height / 2, { steps: 5 }); // 调整步数以适应实际滑动
await page.mouse.up();
// 等待验证完成
await page.waitForSelector('.geetest_success');
console.log('滑动验证成功!');
// 继续其他自动化操作...
// 关闭浏览器
await browser.close();
}
// 使用示例
const loginUrl = '网易易盾验证码页面的URL';
const username = '你的用户名';
const password = '你的密码';
solveGeetest(loginUrl, username, password);
这段代码演示了如何使用Puppeteer来自动化地解决网易易盾的滑动验证码。在实际使用中,你需要替换loginUrl
、username
和password
为你的登录信息,并确保Puppeteer启动时的浏览器界面是可见的,以便正确地模拟用户的滑动动作。
评论已关闭