超级鹰的使用

超级鹰主要作用在我们利用selenium实现自动登录页面时往往会遇到图片类型的验证码,

而超级鹰的作用就是识别验证码返回给我们,下面看下具体的实现。

1.//www.chaojiying.com/user/login进入超级鹰登录页面注册账号

2.下载demo包

点击开发文档,在各语言sdk例子下载下,下载所需的语言包,这里以python为例

下载完成后解压会有一个chaojiying.py文件,将文件复制到你的项目下。复制完成如果你

的python版本是2无需改动,如果是3,需要在print加上括号。

  3.获取软件id

4.导入chaojiying模块下的Chaojiying_Client类,调用PostPic方法完成识别

from chaojiying import Chaojiying_Client

chaojiying = Chaojiying_Client('用户名', '密码', '软件id')
im = open('需要识别的图片', 'rb').read()

print(chaojiying.PostPic(im, 1902))  # 1902为识别的验证码类型

验证码在价格体系下查看,根据自己的所需查看

5.实例

from chaojiying import Chaojiying_Client


chaojiying = Chaojiying_Client('你的用户名', '你的密码', '	软件id')
im = open('./img/a.jpg', 'rb').read()  # 读取保存的图片

print(chaojiying.PostPic(im, 1902))  # 打印验证码

a.jpg为我本地保存的验证码图片

 运行后发现错误,好东西往往是要收费的,没办法,只好斥资一块钱买个题分

{'err_no': -1005, 'err_str': '无可用题分', 'pic_id': '0', 'pic_str': '', 'md5': ''}

 

 购买完题分后我们再次运行,发现可正常识别的内容在pic_str字段中,这时我们直接获取即可。

{'err_no': 0, 'err_str': 'OK', 'pic_id': '1190913450969630001', 'pic_str': '7261', 'md5': 'aa86ba819b38b65479e5ba42d477ab03'}

6.实践

我们以登录超级鹰页面为例

import time

from selenium import webdriver
from selenium.webdriver.common.by import By

from chaojiying import Chaojiying_Client

driver = webdriver.Chrome()
driver.implicitly_wait(10)  # 设置全局等待
driver.get("//www.chaojiying.com/user/login/")  # 打开登录页面
driver.find_element(by=By.NAME, value="user").send_keys("你的用户名")  # 填写用户名
driver.find_element(by=By.NAME, value="pass").send_keys("你的密码")  # 填写密码
img_list = driver.find_elements(by=By.TAG_NAME, value="img")
# img_url = img_list[2].get_attribute("src")  # 获取验证码图片地址
img = img_list[2].screenshot_as_png  # 截取定位元素位置的图
# with open("./img/img.png", mode="wb")as f:
#     f.write(requests.get(img_url).content)  # 将图片保存到本地

chaojiying = Chaojiying_Client('你的用户名', '你的密码', '	软件id')
# im = open("./img/img.png", 'rb').read()  # 读取保存的图片
data = chaojiying.PostPic(img, 1902)  # 打印验证码
data = data["pic_str"]  # 获取验证码
driver.find_element(by=By.NAME, value="imgtxt").send_keys(data)  # 填写验证码
time.sleep(3)
driver.find_element(by=By.CLASS_NAME, value="login_form_input_submit").click()  # 点击登录
time.sleep(2)
driver.quit()

  

 

 

 

 

 

 

文章来源://www.cnblogs.com/lihongtaoya/ ,请不要转载
Tags: