一、前提
安裝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,謝謝!!*******