打码平台的对接
驗(yàn)證碼打碼平臺(tái)的對(duì)接。
1、打碼平臺(tái)的配置。
#!/usr/bin/env python # coding:utf-8import requests from hashlib import md5 import shandong_configclass Chaojiying_Client(object):def __init__(self, username, password, soft_id):self.username = usernamepassword = password.encode('utf-8')self.password = md5(password).hexdigest()self.soft_id = soft_idself.base_params = {'user': self.username,'pass2': self.password,'softid': self.soft_id,}self.headers = {'Connection': 'Keep-Alive','User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',}def PostPic(self, im, codetype):"""im: 圖片字節(jié)codetype: 題目類型 參考 http://www.chaojiying.com/price.html"""params = {'codetype': codetype,}params.update(self.base_params)files = {'userfile': ('ccc.jpg', im)}r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)return r.json()def ReportError(self, im_id):"""im_id:報(bào)錯(cuò)題目的圖片ID"""params = {'id': im_id,}params.update(self.base_params)r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)return r.json()def get_code(filename, code_type):'''獲取驗(yàn)證碼結(jié)果:param img_path: 圖片路徑,可以是相對(duì)路徑或絕對(duì)路徑:param code_type: 驗(yàn)證碼類型,詳情可見:http://www.chaojiying.com/price.html:return:'''chaojiying = Chaojiying_Client(shandong_config.DAMA_USERNAME, shandong_config.DAMA_PASSWORD, shandong_config.DAMA_TOKEN)im = open(filename, 'rb').read() #本地圖片文件路徑 來替換 a.jpg 有時(shí)WIN系統(tǒng)須要//code = chaojiying.PostPic(im, code_type)['pic_str'] #1902 驗(yàn)證碼類型 官方網(wǎng)站>>價(jià)格體系 3.4+版 print 后要加()return code2、驗(yàn)證碼的獲取。
# 驗(yàn)證碼 self.browser.save_screenshot('./image/shandong/printscreen.png') imgelement = self.browser.find_element_by_id('image') location = imgelement.location # 獲取驗(yàn)證碼x,y軸坐標(biāo) size = imgelement.size # 獲取驗(yàn)證碼的長(zhǎng)寬 rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']),int(location['y'] + size['height'])) # 寫成我們需要截取的位置坐標(biāo) i = Image.open("./image/shandong/printscreen.png") # 打開截圖 frame4 = i.crop(rangle) # 使用Image的crop函數(shù),從截圖中再次截取我們需要的區(qū)域 frame4.save('./image/shandong/save.png') # 保存我們接下來的驗(yàn)證碼圖片 進(jìn)行打碼3.對(duì)接。
element = self.wait.until(EC.presence_of_element_located((By.ID, 'verifyCode'))) element.send_keys(get_code('./image/shandong/save.png',1902))總結(jié)
- 上一篇: 换脸上阵的路由界新面孔,联想云路由动手玩
- 下一篇: 简单菜谱