目录
超级鹰
在获取数据遇到验证码时,一般只有两种处理方式,要么自己写图像识别(有这能力可以去干计算机视觉了),要么选择互联网上成熟的验证码破解工具,比如今天使用的超级鹰
登录超级鹰注册领积分,点击用户中心左边一栏最下方的软件ID生成软件ID,拿代码识别平台的时候需要用到这个信息
点击上方开发文档,找到Python下载下来,将里面的.py文件放到pycharm中
对这个程序进行调整
①将最后一行的打印括起来(超级鹰用的是Python2的代码) ;
②将刚才生成的ID放进去替换96001,并输入用户名和密码
③图中变量im就是所有字节(图片),codetype是验证的类型,根据实际键入,官网上有
实际上内部如何工作不需要理会,对 __main__ 中三行进行调整设置即可使用
实例
用超级鹰登录超级鹰,来到界面:
(一)得到验证码图片
from selenium.webdriver import Chrome
web=Chrome()
web.get('http://www.chaojiying.com/user/login/')
对验证码右键检查,定位到图片位置,此时 img 是一个浏览器元素,使用 screenshot_as_png 截取得到的图片
Selenium教程__截图(16)_screenshot_as_png_bug捕手的博客-CSDN博客
img_element=web.find_element('xpath','/html/body/div[3]/div/div[3]/div[1]/form/div/img')
img=img_element.screenshot_as_png
(二)使用超级鹰
以模块的方式导入超级鹰并运行,流程:造出超级鹰对象使用里面的 PostPic 方法,传参
处理验证码时,PostPic 方法返回的是一个字典,且验证码的结果在 pic_str 键中,用 [] 或者 dic.get 得到验证结果
from chaojiying import Chaojiying_Client
# 造一个超级鹰对象
cjy = Chaojiying_Client('xxx', 'xxx', 'xxx')
# 处理验证码得到结果
res = cjy.PostPic(img, 1902).get('pic_str')
print(res)
(三)填入登录信息,点击登录
# 填入
web.find_element('xpath','/html/body/div[3]/div/div[3]/div[1]/form/p[1]/input').send_keys('xxx')
web.find_element('xpath','/html/body/div[3]/div/div[3]/div[1]/form/p[2]/input').send_keys('xxx')
web.find_element('xpath','/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input').send_keys(res)
time.sleep(5)
# 点击
web.find_element('xpath','/html/body/div[3]/div/div[3]/div[1]/form/p[4]/input').click()
time.sleep(5)
经测试登录成功