首先注册百度智能云账号(这里我用的是百度智能云):

 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--自动化识别图片验证码并输入相关推荐

  1. Python + selenium自动化工具 + 滑块验证码+点选验证码,实现模拟登录“中国铁路网12306”

    文章目录 一.模拟登录"中国铁路网12306 1.引入库 2.初始化 3.将点选验证码图片,通过人工打码,返回目标像素位置(json格式). 4.点选验证码位置得到后,需要鼠标左击进行模拟人 ...

  2. Python爬虫--实现图片验证码全自动输入

    爬虫--实现图片验证码全自动输入 爬取网站:豆瓣(https://accounts.douban.com/login) 爬虫思路:1. 使用selenium, 对图片验证码进行截图操作, 2. 接入打 ...

  3. selenium自动化脚本过验证码

    selenium自动化脚本过验证码 实现原理 代码 过验证码的方法还有OpenCV识别 有时间再写 需要用到的链接: 链接: Chrome开发者工具协议. 借鉴原文: chromedriver通过ne ...

  4. 用Python模拟识别图片验证码并发送手机验证码

    1.导语 大家好,好久不见.又到每日分享Python小技能的时候了.最近因为疫情影响,所以更新内容比较慢-今天周一,就来更新一波,心血来潮,是时候上线经营了.其实也没想到有啥好分享的,不如分享一些干货 ...

  5. python—简单数据抓取四(利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站、利用百度云的ocr识别自如租房网价格图片获取到自如网的价格)

    学习目标: python学习二十四 -简单数据抓取四 学习内容: 1.利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站 2.利用百度云的ocr识别自如租房网的价格图片,获取到自如网的价格数据 1.利 ...

  6. python selenium 验证码识别_Python网络爬虫之如何用代码识别图片验证码

    验证码 当我们在爬取某些网站的时候,对于一些频繁请求,网站会识别你是机器还是人.如果是机器,直接不允许你访问这个网站了,直接返回404或者禁止访问. 最常见的方式就是验证码.验证码的主要功能就是区分当 ...

  7. UI自动化之图片验证码处理

    本文主要使用的库包括:ddddocr(带带弟弟OCR),PIL(图像处理),Selenium(UI自动化) 环境要求:python3.8以上 # 导包 import ddddocr from PIL ...

  8. 教程 | 用Python识别图片验证码中的文字

    作者 | 老表 来源 | 简说Python(ID:xksnh888xksnh888) [导语]在今天这篇文章中,作者分享给大家一个有趣又干货满满的 Python 项目.通过这份教程,大家不仅又多了一个 ...

  9. 易语言python识别图片验证码_TensorFlow实战:验证码识别 (少样本高精度)

    项目地址:https://github.com/kerlomz/captcha_trainer 1. 前言本项目适用于Python3.6,GPU>=NVIDIA GTX1050Ti,原maste ...

  10. 如何识别图片验证码?

    全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCH ...

最新文章

  1. 移动的验证码安全问题告诉移动网站后......,1860意指一般人不会这样做.
  2. 教练如何引导学员在线报名
  3. 笔记-计算机网络基础-开放系统互连参考模型OSI
  4. Oracle 数据库中较为复杂或典型的 SQL 语句的解读
  5. 如何对数据库中的表以及表中的字段进行重命名
  6. vue路由懒加载_优化vue项目的首屏加载速度
  7. arch linux简体中文,User-mode Linux (简体中文)
  8. 产品经理必知必会的SQL
  9. 【个人学习文章收集】
  10. mkisofs命令制作光盘ISO
  11. AI学习 Day06 内置函数
  12. hapi mysql项目实战路由初始化_hapi框架搭建记录(二):路由改造和生成接口文档...
  13. cache stm32h7_STM32H7的Cache和MPU
  14. 【cocos creater】5.仿《弓箭传说》- 创建虚拟遥感
  15. VBoxManager命令解析
  16. Java流程控制之do....while 循环的详解,看完你就会
  17. jQuery仿钉钉组织架构的选择部门功能,移动端完美树形图
  18. 基于cocos2d-x简易泡泡龙游戏二
  19. 【软件网每日新闻播报│第9-25期】
  20. 找不到认证服务器 是否网卡选择错误,锐捷上网认证常见问题及解决办法

热门文章

  1. 实验室管理系统LIMS的作用和意义
  2. java 对手机号码进行校验
  3. 市场调研报告-全球与中国商业虚拟化平台市场现状及未来发展趋势
  4. MS08-067漏洞渗透测试
  5. 密码领域专用语言 ZUC算法
  6. 编译原理笔记05-语法分析自底向上
  7. VoLTE业务端到端流程:无线侧信令流程
  8. 苹果平板有Linux终端吗,Apple:如何在iphone、ipad上安装一些常用命令行命令
  9. 怎么查看笔记本内存条型号_查看笔记本内存条型号
  10. 第二章 常用半导体器件原理