python自动化登录
1 ''' 2 Created on 2019年 3 用户登录 4 @author: Root 5 ''' 6 import time 7 import pytesseract 8 from PIL import Image, ImageEnhance 9 from selenium import webdriver 10 11 # 打开浏览器并窗口最大化 12 driver = webdriver.Chrome() 13 driver.get(url) 14 driver.maximize_window() 15 16 # 识别验证码 17 def codeRecognize(): 18 # 1.截取屏幕内容,保存到本地 19 driver.save_screenshot("F://09_0102_zjs//code//01.png") 20 21 # 2.打开截图 22 ran = Image.open("F://09_0102_zjs//code//01.png") 23 # 3.获取验证码位置,截取保存验证码 24 imgElement = driver.find_element_by_id("captchaImage") 25 #获取验证码x,y轴坐标 26 location = imgElement.location 27 #获取验证码的长宽 28 size=imgElement.size 29 # 定位验证码,自动定位或者手动定位 30 # 参数:左,上,右,下 31 codeRange=(int(location['x']),int(location['y']),int(location['x']+size['width']+1),int(location['y']+size['height'])) 32 33 # 截取验证码并保存 34 ran.crop(codeRange).save("F://09_0102_zjs//code//02.png") 35 36 # 4、获取验证码图片,读取验证码 37 imageCode = Image.open("F://09_0102_zjs//code//02.png") # 图像增强,二值化 38 # imageCode.load() 39 sharp_img = ImageEnhance.Contrast(imageCode).enhance(2.0) 40 sharp_img.save("F://09_0102_zjs//code//03.png") 41 sharp_img.load() # 对比度增强 42 time.sleep(3) 43 44 # 5、识别验证码 45 pytesseract.pytesseract.tesseract_cmd = "C://Program Files//Tesseract-OCR//tesseract.exe" 46 image = Image.open("F://09_0102_zjs//code//03.png") 47 result = pytesseract.image_to_string(image) 48 print(result) 49 50 return result 51 52 def userLogin(): 53 user = driver.find_element_by_id("username") 54 pwd = driver.find_element_by_id("password") 55 user.clear() 56 pwd.clear() 57 # 输入用户名和密码 58 user.send_keys("xxx") 59 pwd.send_keys("xxx") 60 61 # 输入验证码 62 result = codeRecognize() 63 driver.find_element_by_id("captcha").send_keys(result) 64 65 # 点击登录 66 time.sleep(1.5) 67 driver.find_element_by_id("login").click() 68 time.sleep(0.5) 69 # 检查是否登录 70 isLogin = driver.find_element_by_xpath("//span[text()='扫码登录']") 71 72 try: 73 time.sleep(0.5) 74 while isLogin.is_enabled(): 75 userLogin() 76 try: 77 exitEle = driver.find_element_by_id("headerHandle") 78 if exitEle.is_enabled(): 79 exit() 80 except: 81 print ("登录页面元素不存在") 82 else: 83 time.sleep(0.5) 84 # 刷新页面 85 driver.refresh() 86 userLogin() 87 except: 88 print ("登录页面元素不存在") 89 else: 90 pass
1. 识别验证码,实现自动登录
情如风雪无常,却是一动即伤