selenium--自动化识别图片验证码并输入
首先注册百度智能云账号(这里我用的是百度智能云):
1.要在这里面保存好API Key 和 Secret Key
2.然后进入查看文档
在pycharm中:
import requests
import redis
import base64# 封装百度类
class Baidu:def __init__(self):# apikey 写入自己先前保存好的self.apikey = ""# api secretkeyself.apisecret = ""self.redis = redis.Redis(password="123",decode_responses=True)# 文字图片识别def cor(self, filename="./test.png"):# 定义请求地址request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"# 读取图片f = open(filename, 'rb')# base64编码img = base64.b64encode(f.read())# 定义请求参数params = {"image": img}access_token = self.redis.get("baidutoken")request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}# 发起请求response = requests.post(request_url, data=params, headers=headers)if response:print(response.json())# 获取识别的结果num = ""for x in response.json()["words_result"]:num += x["words"]return num# 获取tokendef get_token(self):host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s' \'&client_secret=%s' % (self.apikey,self.apisecret)response = requests.get(host)if response:print(response.json())# 存储tokentry:self.redis.set("baidutoken",response.json()["access_token"])except Exception as e:print("请求报错,无法获取token")if __name__ == '__main__':baidu = Baidu()print(baidu.cor())
导入自动化文件:
from baiduapi import Baidu
在写自动化脚本时调用封装的百度类:
注意:自动化识别文字可能会出现识别不出来的可能,要解决这个Bug。
代码分享:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from time import sleepfrom baiduapi import Baidu
from selenium.webdriver.edge.options import Options
# 设置配置
myoptions = Options()
myoptions.add_experimental_option("detach",True)# 自动化注册class AutoReg:# 初始化方法def __init__(self):self.url = "http://localhost:8080/reg"self.email = "123"self.password = "123"# 初始化浏览器实例self.browser = webdriver.Edge()# 打开网页self.browser.get("http://localhost:8080/reg")# 注册动作def first(self):# 延迟time.sleep(2)# 填写表单self.browser.find_elements(By.TAG_NAME, "input")[0].send_keys("123")self.browser.find_elements(By.TAG_NAME, "input")[1].send_keys("123")# 生成验证码self.imgcode()# 识别num = self.cor()# 写入验证码if num:self.send(num)# 写入验证码def send(self,num):self.browser.find_elements(By.TAG_NAME, "input")[2].send_keys(num)self.browser.find_elements(By.CLASS_NAME,"van-button")[1].click()# 重新生成图片验证码def imgcode(self):# 生成验证码self.browser.find_elements(By.CLASS_NAME, "van-button")[0].click()time.sleep(2)# 选择随机图片,截图img = self.browser.find_elements(By.TAG_NAME, "img")[0]# 截图该元素图片img.screenshot("test.png")# 识别方法def cor(self):# 实例化对象baidu = Baidu()num = baidu.cor()times = 0success = Falsewhile times<3 and not success:print("第%s次" % (times+1))num = baidu.cor()if len(num) == 4:success = Trueelse:self.imgcode()times += 1if success:return numelse:return None# 析构方法def __del__(self):time.sleep(3)self.browser.quit()if __name__ == '__main__':autoreg = AutoReg()autoreg.first()exit(-1)
其中涉及到页面截屏功能,根据当前页面来识别图片验证码,进行输入,要考虑好逻辑,避免出现
识别不出来的Bug!!!
selenium--自动化识别图片验证码并输入相关推荐
- Python + selenium自动化工具 + 滑块验证码+点选验证码,实现模拟登录“中国铁路网12306”
文章目录 一.模拟登录"中国铁路网12306 1.引入库 2.初始化 3.将点选验证码图片,通过人工打码,返回目标像素位置(json格式). 4.点选验证码位置得到后,需要鼠标左击进行模拟人 ...
- Python爬虫--实现图片验证码全自动输入
爬虫--实现图片验证码全自动输入 爬取网站:豆瓣(https://accounts.douban.com/login) 爬虫思路:1. 使用selenium, 对图片验证码进行截图操作, 2. 接入打 ...
- selenium自动化脚本过验证码
selenium自动化脚本过验证码 实现原理 代码 过验证码的方法还有OpenCV识别 有时间再写 需要用到的链接: 链接: Chrome开发者工具协议. 借鉴原文: chromedriver通过ne ...
- 用Python模拟识别图片验证码并发送手机验证码
1.导语 大家好,好久不见.又到每日分享Python小技能的时候了.最近因为疫情影响,所以更新内容比较慢-今天周一,就来更新一波,心血来潮,是时候上线经营了.其实也没想到有啥好分享的,不如分享一些干货 ...
- python—简单数据抓取四(利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站、利用百度云的ocr识别自如租房网价格图片获取到自如网的价格)
学习目标: python学习二十四 -简单数据抓取四 学习内容: 1.利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站 2.利用百度云的ocr识别自如租房网的价格图片,获取到自如网的价格数据 1.利 ...
- python selenium 验证码识别_Python网络爬虫之如何用代码识别图片验证码
验证码 当我们在爬取某些网站的时候,对于一些频繁请求,网站会识别你是机器还是人.如果是机器,直接不允许你访问这个网站了,直接返回404或者禁止访问. 最常见的方式就是验证码.验证码的主要功能就是区分当 ...
- UI自动化之图片验证码处理
本文主要使用的库包括:ddddocr(带带弟弟OCR),PIL(图像处理),Selenium(UI自动化) 环境要求:python3.8以上 # 导包 import ddddocr from PIL ...
- 教程 | 用Python识别图片验证码中的文字
作者 | 老表 来源 | 简说Python(ID:xksnh888xksnh888) [导语]在今天这篇文章中,作者分享给大家一个有趣又干货满满的 Python 项目.通过这份教程,大家不仅又多了一个 ...
- 易语言python识别图片验证码_TensorFlow实战:验证码识别 (少样本高精度)
项目地址:https://github.com/kerlomz/captcha_trainer 1. 前言本项目适用于Python3.6,GPU>=NVIDIA GTX1050Ti,原maste ...
- 如何识别图片验证码?
全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCH ...
最新文章
- 移动的验证码安全问题告诉移动网站后......,1860意指一般人不会这样做.
- 教练如何引导学员在线报名
- 笔记-计算机网络基础-开放系统互连参考模型OSI
- Oracle 数据库中较为复杂或典型的 SQL 语句的解读
- 如何对数据库中的表以及表中的字段进行重命名
- vue路由懒加载_优化vue项目的首屏加载速度
- arch linux简体中文,User-mode Linux (简体中文)
- 产品经理必知必会的SQL
- 【个人学习文章收集】
- mkisofs命令制作光盘ISO
- AI学习 Day06 内置函数
- hapi mysql项目实战路由初始化_hapi框架搭建记录(二):路由改造和生成接口文档...
- cache stm32h7_STM32H7的Cache和MPU
- 【cocos creater】5.仿《弓箭传说》- 创建虚拟遥感
- VBoxManager命令解析
- Java流程控制之do....while 循环的详解,看完你就会
- jQuery仿钉钉组织架构的选择部门功能,移动端完美树形图
- 基于cocos2d-x简易泡泡龙游戏二
- 【软件网每日新闻播报│第9-25期】
- 找不到认证服务器 是否网卡选择错误,锐捷上网认证常见问题及解决办法