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. 识别验证码,实现自动登录

posted @ 2019-07-12 19:25  一叶知秋WDZY  阅读(1565)  评论(0编辑  收藏  举报