验证码截图接打码平台

本文介绍了一种自动化处理网站验证码的方法,通过截取验证码图片并调用打码平台API进行识别,实现自动输入验证码的过程。文章详细描述了使用Python Selenium库定位验证码图片,获取其位置和大小,然后从全屏截图中裁剪出验证码图片,并将其发送到打码平台进行识别。识别后的验证码被自动输入到网站的验证码输入框中,完成自动化登录流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1   #打码平台
 2     def dmpt(self,filename,bro):
 3         result=fateadm_api.TestFunc(filename)#调用打码平台
 4         print("准备输入验证码")
 5         time.sleep(1)
 6         bro.find_element_by_xpath('//*[@id="seccodeInput"]').send_keys(result)#输入验证码
 7         time.sleep(1)
 8         bro.find_element_by_xpath('//*[@id="submit"]').click()
 9         time.sleep(4)
10         print("提交完成,马上跳转,请稍等")
11         if "访问出错了" in bro.page_source:
12             self.image(bro)
13 
14     #处理验证码
15     def image(self,bro):
16         time.sleep(2)
17         #picture_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
18         img = bro.find_element_by_id('seccodeImage')
19         location = img.location
20         size = img.size
21         left = location['x']
22         top = location['y']
23         right = left + size['width']
24         bottom = top + size['height']
25         page_snap_obj = self.get_snap(bro)
26         time.sleep(2)
27         image_obj = page_snap_obj.crop((left, top, right, bottom))#提取验证码图片
28         #image_obj.show()#window自带的图片展示
29         filename='./image/'+"a"+".png"
30         image_obj.save(filename)#保存图片
31         self.dmpt(filename,bro)#调用打码平台
32 
33     #保存打开图片返回
34     def get_snap(self,bro):
35         # picture_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
36         # bro.save_screenshot('./image/full_snap{}.png'.format(picture_time))#当前网页的整张截图
37         # page_snap_obj = Image.open('./image/full_snap{}.png'.format(picture_time))
38         # return page_snap_obj
39 
40         bro.save_screenshot('./image/full_snap.png')  # 当前网页的整张截图
41         page_snap_obj = Image.open('./image/full_snap.png')
42         return page_snap_obj
View Code

 

转载于:https://www.cnblogs.com/duanhaoxin/p/11413234.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值