0


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)

标签: selenium

本文转载自: https://blog.csdn.net/CiCi_he/article/details/124105981
版权归原作者 CiCi_he 所有, 如有侵权,请联系我们删除。

“selenium怎么定位/操作图片中的验证码?”的评论:

还没有评论