求助 playwright 解决滑块验证码的问题

51 天前
 sickoo

爬虫目标网站是使用滑块验证码,于是在 google 搜索到一篇 opencv+playwright 解决滑动验证码的技术帖

复制粘贴改动后(对不起我是菜鸡),代码大致可运行成功,但是最后一步判断滑块是否验证成功出了问题

原帖给出是判断验证码框( iframe )内滑块元素是否存在来判断是否成功,但是程序卡在这 locator.wait_for() 而导致 timeout 超出 30 秒报错

通过定位页面元素,该滑块元素一直存在 DOM ,好像这个页面元素判断方法出了问题,那么我该怎么改动呢?

captcha_iframe.get_by_alt_text("slider").wait_for(timeout=2000)
1173 次点击
所在节点    Python
9 条回复
liuhai233
51 天前
建议先 debug 找个这个元素,再考虑模拟滑动
Motorola3
51 天前
一般的滑块可以通过保存大量的图和完成坐标来实现,更强一点的建议抓请求拿到 base64 然后走第三方过 拿到结果 token 后再发请求
jpyl0423
51 天前
信息太少了,页面结构不清楚,也不知道你是要判断存在还是不存在的元素
sickoo
51 天前
忘了补充爬虫测试网址: https://www.igamebuy.com

点击注册,点击验证验证码,就能看到滑块验证码框

@jpyl0423 存在的元素
sickoo
51 天前
@liuhai233 已经找到了,但是判断成功这一块代码逻辑有待完善
sickoo
51 天前
@Motorola3 了解
zh826256645
51 天前
opencv 有个模板匹配,你拿到滑动的缺口图片当模板,放入整张图片去匹配就行能得出位置了
sickoo
51 天前
@zh826256645 这个代码已经做到了,就是差最后判断成功这一步。
sickoo
51 天前
好的解决了,拦截请求干碎了这个滑块验证码 结帖

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

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

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

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

© 2021 V2EX