目录
- 1. 验证码平台的使用
- 1.1 下载demo程序
- 1.2 注册后生成软件id
- 1.3 查验证码类型
- 1.4 demo文件中填写我们的用户参数测试效果
- 2. 分析超级鹰的登录
- 3. 完整代码
- 总结
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
1. 验证码平台的使用
1.1 下载demo程序
注册后在开发文档中下载demo,按照
一个超级鹰(新用户绑定公众号送免费1000题分)
http://www.chaojiying.com/api-14.html(下载python的demo)
1.2 注册后生成软件id
http://www.chaojiying.com/user/mysoft/do/
- 你会得到你的
软件ID
和软件KEY
1.3 查验证码类型
http://www.chaojiying.com/price.html(验证码类型对应表)
我们的4位以内英文数字 验证码类型为1004
1.4 demo文件中填写我们的用户参数测试效果
a.jpg使我们的验证码图片,chaojiying.py是测试demo文件,我这边为了方便把验证码图片放在新建的文件夹code
中
if __name__ == '__main__':
# 用户中心>>软件ID 生成一个替换 96001
# chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件ID') #用户中心>>软件ID 生成
chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件id')
# 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
im = open('code//a.jpg', 'rb').read() # im就是图片的所有字节(图片)
# 1902 验证码类型 官方网站>>价格体系
result = chaojiying.PostPic(im, 1004)
print(result)#1-4位英文数字的识别结果 字典类型
# {'err_no': 0, 'err_str': 'OK', 'pic_id': '1209121250911890365', 'pic_str': '7261', 'md5': '547c0ee1a7023230759c84c451a88fe2'}
print(type(result))# <class 'dict'>
print(result.get('pic_str',0)) #7261
2. 分析超级鹰的登录
可以注意到超级鹰的用户登录是需要验证码识别的,我们就用超级鹰自身的验证码识别来识别他自己的登录验证码。
http://www.chaojiying.com/user/login/
- 验证码图片 xpath
/html/body/div[3]/div/div[3]/div[1]/form/div/img
.screenshot_as_png
直接将图片转为字节码信息
img = web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/div/img').screenshot_as_png
- 然后输入我们的登录信息
- 账号的xpath
/html/body/div[3]/div/div[3]/div[1]/form/p[1]/input
- 密码的xpath
/html/body/div[3]/div/div[3]/div[1]/form/p[2]/input
- 验证码的xpath
/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input
- 点击登录 xpath
/html/body/div[3]/div/div[3]/div[1]/form/p[4]/input
3. 完整代码
成功登录
from selenium.webdriver import Chrome
# 导入超级鹰的demo文件
from chaojiying import Chaojiying_Client
import time
web = Chrome()
web.get("http://www.chaojiying.com/user/login/")
# 先获取验证码图片的字节信息,然后调用超级鹰的demo文件中写好的识别方法,传入图片和我们超级鹰的参数,得到识别结果验证码
img = web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/div/img').screenshot_as_png
chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '软件id') #用户中心>>软件ID
dic = chaojiying.PostPic(img, 1902)#调用超级鹰demo文件的识别文件方法
verify_code = dic.get('pic_str',0)#如果没有识别结果,赋值为0
if verify_code==0:
print("没有识别结果,检查是否正确填写了参数")
time.sleep(1000000)
# 向页面中填入用户名, 密码, 验证码
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[1]/input').send_keys("超级鹰用户名")
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[2]/input').send_keys("超级鹰用户名的密码")
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input').send_keys(verify_code)
time.sleep(5)
# 点击登录
web.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[1]/form/p[4]/input').click()
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2023 mzh
Crated:2023-3-1
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』