selenium怎么定位/操作图片中的验证码?

最近在学习selenium自动化,便整理了下加深印象,如有侵权,告删!

用tesseract OCR引擎处理图片中的验证码,步骤:

(1)对整个屏幕截屏,保存成png格式的图片;

(2)在截取的图片中定位验证码图片的位置坐标;

(3)根据坐标对验证码截图;

(4)最后在图片中提取验证码,输入到输入框。

具体代码如下:

import requests
import time
from bs4 import BeautifulSoup
import tesserocr
from PIL import Image
from selenium import webdriver
from datetime import datetime

#解析页面的验证码
driver = webdriver.Chrome(r'E:\soft\Chrome-Win7\chromedriver.exe')#打开谷歌浏览器
driver.get('http://zfcj.gz.gov.cn/data/QueryService/Query.aspx?QueryID=26')#打开一个网站

filename = "./image/image1.png"
driver.save_screenshot(filename)#截屏
element = driver.find_element_by_id("VcodeSubmit")#需要截取的元素定位                                        
left = element.location['x']#获取元素上下左右的位置
top = element.location['y']
right = element.location['x'] + element.size['width']
bottom = element.location['y'] + element.size['height']

im = Image.open(filename)#打开刚才的截图
im = im.crop((left, top, right, bottom))#截取对应位置
im.save(filename)#保存覆盖原有截图

#识别出验证码
img = Image.open(filename)
code = tesserocr.image_to_text(img).strip()
print(code)


 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值