超级鹰的使用

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

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

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

2.下载demo包

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

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

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

  3.获取软件id

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

1

2

3

4

5

6

from chaojiying import Chaojiying_Client

chaojiying = Chaojiying_Client('用户名''密码''软件id')

im = open('需要识别的图片''rb').read()

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

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

5.实例

1

2

3

4

5

6

7

from chaojiying import Chaojiying_Client

chaojiying = Chaojiying_Client('你的用户名''你的密码''   软件id')

im = open('./img/a.jpg''rb').read()  # 读取保存的图片

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

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

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

1

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

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

1

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

6.实践

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

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("https://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()

  

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐