OCR selenium

  1. from selenium import webdriver
  2. import pytesser3
  3. import os
  4. import sys, time
  5. from PIL import Image, ImageEnhance
  6.  
  7. url = "http://ターゲットURLL"
  8.  
  9. driver = webdriver.Chrome()
  10.  
  11. time.sleep(2)
  12.  
  13. driver.get(url)
  14.  
  15. time.sleep(5)
  16.  
  17. try:
  18.     account = driver.find_element_by_id('_account')
  19.     password = driver.find_element_by_id('_password')
  20.     region = driver.find_element_by_id('_regionId')
  21.     captcha = driver.find_element_by_id('_captcha')
  22. except:
  23.     print("查找元素出现异常")
  24.  
  25. #  网页截图 + 验证码截图
  26. try:
  27.     driver.get_screenshot_as_file('G:\\temp\\page\\loginPage1.png')  # 比较好理解
  28.     im = Image.open('G:\\temp\\page\\loginPage1.png')
  29.     box = (884, 684, 1024, 734)  # 设置要裁剪的区域,这个坐标是验证码图片这个长方形的左上角坐标和右下角坐标,不懂可以问UI美工,用图形编辑工具很容易获得
  30.     region = im.crop(box)  # 此时,region是一个新的图像对象。
  31.     region.save("G:\\temp\\captcha\\image_code.png")
  32. except:
  33.     print("网页截图 + 验证码截图出现异常")
  34.  
  35. driver.close()
  36. # --------------------图片增强+自动识别简单验证码-----------------------------
  37. # 防止图片还没保存好,就开始识别
  38. time.sleep(3)
  39. im = Image.open("G:\\temp\\captcha\\image_code.png")
  40. imgry = im.convert('L')  # 图像加强,二值化
  41. sharpness = ImageEnhance.Contrast(imgry)  # 对比度增强
  42. sharp_img = sharpness.enhance(2.0)
  43. sharp_img.save("G:\\temp\\captcha\\image_code.png")
  44.  
  45.  
  46. time.sleep(2)
  47.  
  48. def image_file_to_string(file):
  49.     cwd = os.getcwd()
  50.     try:
  51.         os.chdir("D:\\programs\\Tesseract-OCR")
  52.         return pytesser3.image_file_to_string(file)
  53.     finally:
  54.         os.chdir(cwd)
  55.  
  56. # code即为识别出的图片数字str类型
  57. code = image_file_to_string("G:\\temp\\captcha\\image_code.png")
  58. time.sleep(1)
  59. print(code)

連絡先: info@paste.jp
Created by Paste.jp - v7.0