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. 識別驗證碼,實現自動登錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM