puppeteer 如何操作需要拖动的验证码 需要什么技术?
1
Rrrrrr 218 天前
是的,Puppeteer 可以用来模拟拖动验证码。以下是一个简单的示例代码:
```javascript const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); // 导航到需要拖动验证码的网页 await page.goto('https://example.com/login'); // 获取验证码元素 const verificationCodeElement = await page.$('#verification-code'); // 获取验证码元素的位置信息 const { x, y, width, height } = await verificationCodeElement.boundingBox(); // 模拟鼠标事件,拖动验证码 await page.mouse.move(x + width / 2, y + height / 2); await page.mouse.down(); await page.mouse.move(x + width + 100, y + height / 2, { steps: 100 }); await page.mouse.up(); // 关闭浏览器 await browser.close(); })(); ``` 这个示例代码首先启动一个新的 Puppeteer 浏览器实例,然后导航到需要拖动验证码的网页。它通过 `$()` 方法获取验证码元素,并使用 `boundingBox()` 方法获取元素的位置信息。接下来,它模拟鼠标事件,将鼠标移动到验证码元素的中心,按下鼠标,然后沿着一条路径移动鼠标并释放鼠标,从而模拟拖动验证码的过程。最后,它关闭浏览器。 需要注意的是,这只是一个简单的示例,实际使用时可能需要根据具体的网页结构和验证码的特点进行调整。同时,也要注意不要滥用这种自动化技术,因为这可能会违反网站的使用条款。 |
2
shadowyue 218 天前
1#是具体技术方案,但是实际做起来应该没那么容易
各种验证码就是为了防止自动化操作的。你一定要做,首先技术上你要能想办法知道鼠标应该动多少距离才行 |
4
nomagick 218 天前
真人打码平台
|
6
butanediol2d 218 天前
@belin520 粘贴 GPT 回复在 V2EX 也是不被鼓励的
|
7
luckyscript 218 天前
滑动验证码并不是你自动化的滑了就能验证通过了,如果是的话,那这个就不叫验证码了。。。
我所了解到的信息:大多数的滑动验证码,在你这个用户刚进入到页面中时,就会搜集你鼠标的移动信息,这些鼠标的移动信息会上报到后台,通过机器学习的算法来判定你是否是真人。至于滑的那一下,大多数只是为了人类更方便操作而已。 另外,Google 的验证码,你只需要打个勾就可以。 |
9
Rrrrrr 218 天前
@butanediol2d #6 不管这些,能让人有点灵感,复制又怎样,好过没人回答
|
10
zhouyin OP 哎呀 如果用美国机器访问网站跳出来的是 Google 验证码 就是总共 9 个图片 让你选择有自行车的图片 这真的无法破解了
还好用中国 ip 访问 跳出来的是这个拖动的验证码 这样子看来 还要给 puppeteer 设置一个位于中国的代理机器? 有什么便宜的国内代理机器推荐没? |
11
Tink 217 天前
我用 selenium 做过,使用 ddddocr 获取拖动坐标,然后操作鼠标拖动
|
14
FAQ00Ah 217 天前
啥时候解决了源码发一下
|
15
hjaycee 217 天前
谷歌上搜下 captcha ,多的是代打码平台
|