selenium + 超级鹰 识别验证码自动登录
登录界面如下
爬虫代码
from selenium import webdriver
import time,random, re, os
from test_chaojiying import Chaojiying_Client # 导入超级鹰工具类
from PIL import Image
driver = webdriver.Chrome() #启动谷歌浏览器
driver.implicitly_wait(10) # 隐式等待( 等页面元素加载完毕再开始爬虫)driver.get('http://127.0.0.1:8999') # 使用本地django项目
# 通过xpath 定位到账号密码输入框 并使用send_keys 发送账号密码到输入框
driver.find_element_by_xpath('//*[@id="app"]/div/div[4]/div/form/div[1]/div[2]/div/div/input').send_keys('账号')
driver.find_element_by_xpath('//*[@id="app"]/div/div[4]/div/form/div[2]/div[2]/div/div/input').send_keys('密码')driver.save_screenshot('one.png') # 先截取整个屏幕
element = driver.find_element_by_xpath('//*[@id="app"]/div/div[4]/div/form/div[4]') #通过xpath找到验证码图片
# print(element.location) # 打印元素坐标
# print(element.size) # 打印元素大小
left = element.location['x'] + 150
top = element.location['y']
right = element.location['x'] + (element.size['width']+220)
bottom = element.location['y'] + (element.size['height']+20)
im = Image.open('one.png')
im = im.crop((left, top, right, bottom))
now = time.strftime("%m-%d %H-%M",time.localtime())
imgName = str(now) + ".png"
im.save(imgName) # 经过坐标的过滤,将有验证码的图片保存至本地chaojiying = Chaojiying_Client('用户名', ' 密码', '用户中心的软件ID')
im = open(imgName, 'rb').read() # 本地图片与当前py是同级,如不同级请写路径
# print(chaojiying.PostPic(im, 1902)) #1902是验证码类型中的常见4-6位英文数字
result_code = chaojiying.PostPic(im, 4004) #result: {'err_str': 'OK', 'pic_id': '2090615382056500023', 'err_no': 0, 'md5': '47298d1d39c7b28c1c0269d87b8f7c33', 'pic_str': '1336'}
code = result_code['pic_str'] # 取出验证码的识别结果
print(code)
# driver.find_element_by_xpath('//*[@id="app"]/div/div[4]/div/form/div[4]/div[2]/div/div/input').send_keys(code) #发送验证码
# driver.find_element_by_xpath('//*[@id="app"]/div/div[4]/div/form/div[5]/button/div/div').click() #点击提交按钮driver.close() #关闭浏览器
通过selenium截取的验证码图片
超级鹰
test_chaojiying.py
import requests
from hashlib import md5
class Chaojiying_Client(object):def __init__(self, username, password, soft_id):self.username = usernamepassword = password.encode('utf8')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):#m: 图片字节#codetype: 题目类型 参考 http://www.chaojiying.com/price.htmlparams = {'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:报错题目的图片IDparams = {'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()
gif动图
超级鹰验证码类型及单价
更多爬虫知识 点击这里
另附上一篇 免费识别验证码
点击这里
selenium + 超级鹰 识别验证码自动登录相关推荐
- 2020-08-27 RPA uipath入门demo,超级鹰实现验证码自动登录,自动搜索和拉取数据到excel,robot和Orchestrator共同实现定时安排机器人执行任务。
资源地址:https://download.csdn.net/download/u012742970/12773335 本文主要讲解uipath studio,uirobot,Orchestrator ...
- 爬虫学习笔记(十八)—— 点触验证码:超级鹰、12306自动登录
一.打码平台 点触验证码是一种常见的反爬手段. 解决方案有两种:一种是直接解决,这需要深度学习机器学习等图像处理技术,以大量的数据训练识别模型,最终达到模型足矣识别图片中的文字提示和应该点击的区域之间 ...
- python爬虫——利用超级鹰识别验证码并进行古诗网进行模拟登录
目录 前言 一.超级鹰的注册 二.利用xpath解析登录页面的验证码图片 三.利用超级鹰识别获取验证码 四.模拟浏览器发送请求进行模拟登录 五.验证是否模拟登录成功 前言 本文章是利用python爬虫 ...
- Python使用selenium和百度AI开放平台识别验证码自动登录
文章目录 本文内容 工具准备 Python Packages 浏览器驱动 准备登录 第一步 用Chrome浏览器打开目标网站 第二步 调用selenium输入账户密码 第三步 获取图片验证 ...
- selenium 超级鹰 通过携程滑块和汉字验证码
大概流程 1.进入页面点击同意按钮. 2.得到滑块和滑块区域的xpath 3.定位滑块,设置按住事件,进行拖动 4.xpath定位汉字图片,获取屏幕截图,保存本地 5.超级鹰识别图片返回汉字对应的坐标 ...
- 识别验证码模拟登录微博
前言:在微博进行模拟登录时需要点击验证码,使用网上打码平台来对验证码进行识别,完成登录. 1.模拟登录: 首先登录微博:https://passport.weibo.cn/signin/login 我 ...
- Python + Selenium实现163邮箱的自动登录和发送邮件
运用Python和Selenium实现163邮箱的自动登录和发送邮件 初接触selenium,最近研究了一下用python和Selenium实现163邮箱的自动登录和发送邮件的实现过程,中间出现了各种 ...
- 模拟登录12306(selenium+超级鹰)
最近迷上了用selenium去登陆各大网站,别说selenium真挺好用,可以轻松搞定ajax动态加载的网页,不用很费劲的去抓包查找.咳咳-跑题了,回归正题. 这次用selenium去登录12306网 ...
- 最简单的python使用ddddocr模块在线识别验证码后登录
import unittest from PIL import Image from selenium import webdriver from time import sleep import d ...
- PHP 不跳转界面取input值进行验证_【Python】tesseract+uiautomator2+夜神模拟器 悠长假期手游集市识别验证码自动购买 - Amorius...
开宗明义:这篇文章实际上就是把我的操作记录一遍,以防以后忘记了,又要到处去搜罗.由于我是个python小白,所以这些操作都是各处学来拼到一起的,也因此我确信如果不赶紧记下来,很快就会忘掉.于是就趁热写 ...
最新文章
- DEDECMS后台上传banner图控制图片轮播
- java thread.await_使用Thread.Sleep进行等待的替代方法
- R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置填充色)实战
- SAP Business One on HANA登陆阿里云
- 在ubuntu14.04 64位虚拟机中安装mysql
- CSS中常见的长度单位
- LeetCode 895. 最大频率栈(哈希+按频数存储)
- ASP.NET项目中的驼峰格式JSON响应
- 面试题--------9、mysql的drop delete truncate 分别在什么场景下使用
- 分享给设计师们9款免费和有用的英文字体
- 计算机丢失dll文件怎么弄,电脑缺少dll文件怎么办
- tailf追踪日志文件
- 二进制与十六进制转换对照表
- 微信小程序之地图功能
- 《朗读者》中那些让人受益终生的句子
- cluster_acc计算
- Linux之xinetd安装及实践
- RV1126编译ROS Kinetic环境(Ubuntu18.04)
- EasyCVR国标GB28181协议接入下的TCP和UDP模式说明及差异
- 【DXR/RayTracingGems】屏幕空间光子映射Screen-Space PM(SSPM)