web自動化-處理登錄驗證碼


一、前提

安裝selenium

安裝chromedriver

pillow模塊安裝(處理圖像的庫)

 

二、下載“超級鷹”對外API

超級鷹是驗證碼識別平台,1塊錢可以識別100次,直接百度超級鷹進入官網即可

點擊開發文檔,點擊python,點擊“點擊這里下載”,下載API壓縮包

 

 

 解壓后如下圖所示,將chaojiying.py用pycharm打開

 

 

 

如果是python3,這里需要改一下,print 后邊加()

 

 

 

用戶名和密碼需要注冊超級鷹,軟件id在用戶中心-->軟件id可以生成,然后就可以自行測試一下啦

 

三、實例

下面是我自己實現的登錄界面驗證碼處理,僅供參考

 

 1 from selenium import webdriver
 2 from chaojiying import Chaojiying
 3 from PIL import Image
 4 
 5 from scripts.constants import PAGE_PATH,YZM_PATH
 6 
 7 dirver = webdriver.Chrome()
 8 # 第一步:訪問登錄頁面
 9 dirver.get(網址)
10 
11 # 第二步:定位用戶名密碼輸入框,輸入賬號和密碼
12 
13 # 第三步:驗證碼識別
14 
15 # 保存瀏覽器當前頁面
16 dirver.save_screenshot(“page.png”)
17 # 從頁面中截取驗證碼
18 vcode = dirver.find_element_by_xpath(驗證碼的定位表達式)
19 # 1、獲取驗證碼上下左右邊界坐標
20 loc = vcode.location    # location獲取的是xy軸坐標
21 size = vcode.size
22 left = loc['x']
23 top = loc['y']
24 right = (loc['x'] +size['width'])
25 button = (loc['y']+size['height'])
26 # 截取頁面中的驗證碼
27 page_pic = Image.open(”page.png“)
28 # 進行截圖:參數時一個元組(left,top,right,button)
29 v_code_pic = page_pic.crop((left,top,right,button))     # v_code_pic就是驗證碼
30 v_code_pic.save(”yzm.png“)      # 保存驗證碼
31 # 使用超級鷹識別驗證碼中的內容
32 yz = Chaojiying(username='18301603634', password='mydestiny', soft_id='902340')
33 
34 with open(“yzm.png”, 'rb')as f:
35     pic = f.read()
36 # 得到驗證碼識別的結果
37 result = yz.post_pic(pic, codetype=1902)  
38 # 得到的結果中,pic_str就是識別后的驗證碼
39 res = result['pic_str']
40 print(res)
41 # 第四步:定位驗證碼輸入框,輸入驗證碼
42 # 第五步:點擊登錄
43 
44 # 如果驗證碼識別失敗,可查看result字典中的err_str報錯信息

 



至此,就可以登錄帶有驗證碼的系統啦,需要注意的是,超級鷹需要購買哦,不購買會識別失敗



*******請大家尊重原創,如要轉載,請注明出處:轉載自:https://www.cnblogs.com/urbbr,謝謝!!******* 


免責聲明!

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



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