puppeteer 如何操作需要拖动的验证码

49 天前
 zhouyin

puppeteer 如何操作需要拖动的验证码 需要什么技术?

997 次点击
所在节点    程序员
15 条回复
Rrrrrr
49 天前
是的,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()` 方法获取元素的位置信息。接下来,它模拟鼠标事件,将鼠标移动到验证码元素的中心,按下鼠标,然后沿着一条路径移动鼠标并释放鼠标,从而模拟拖动验证码的过程。最后,它关闭浏览器。

需要注意的是,这只是一个简单的示例,实际使用时可能需要根据具体的网页结构和验证码的特点进行调整。同时,也要注意不要滥用这种自动化技术,因为这可能会违反网站的使用条款。
shadowyue
49 天前
1#是具体技术方案,但是实际做起来应该没那么容易
各种验证码就是为了防止自动化操作的。你一定要做,首先技术上你要能想办法知道鼠标应该动多少距离才行
belin520
49 天前
@Rrrrrr 还以为你是 AI 机器人,差点举报了,看了评论是真人,应该只是从 GPT 里粘贴的回复吧
nomagick
49 天前
真人打码平台
Rrrrrr
49 天前
@belin520 #3 哈哈
butanediol2d
49 天前
@belin520 粘贴 GPT 回复在 V2EX 也是不被鼓励的
luckyscript
48 天前
滑动验证码并不是你自动化的滑了就能验证通过了,如果是的话,那这个就不叫验证码了。。。
我所了解到的信息:大多数的滑动验证码,在你这个用户刚进入到页面中时,就会搜集你鼠标的移动信息,这些鼠标的移动信息会上报到后台,通过机器学习的算法来判定你是否是真人。至于滑的那一下,大多数只是为了人类更方便操作而已。
另外,Google 的验证码,你只需要打个勾就可以。
zhouyin
48 天前
@Rrrrrr
谢谢了 steps 参数帮助了我
现在有 50%的成功率了
Rrrrrr
48 天前
@butanediol2d #6 不管这些,能让人有点灵感,复制又怎样,好过没人回答
zhouyin
48 天前
哎呀 如果用美国机器访问网站跳出来的是 Google 验证码 就是总共 9 个图片 让你选择有自行车的图片 这真的无法破解了

还好用中国 ip 访问 跳出来的是这个拖动的验证码

这样子看来 还要给 puppeteer 设置一个位于中国的代理机器?

有什么便宜的国内代理机器推荐没?
Tink
48 天前
我用 selenium 做过,使用 ddddocr 获取拖动坐标,然后操作鼠标拖动
zhouyin
48 天前
@Tink
谷歌那种无法破解
Tink
48 天前
@zhouyin 谷歌的没试过,微博的可以
FAQ00Ah
48 天前
啥时候解决了源码发一下
hjaycee
48 天前
谷歌上搜下 captcha ,多的是代打码平台

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1038832

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX