pycharml利用ddddocr和selenium识别验证码并登录

news2024/7/4 4:24:14

文章目录

    • 1OCR
    • 2 ddddocr
    • 3使用案例
    • 4 常见问题
    • 代码详情
    • 获得XPATH方法

1OCR

OCR (Optical Character Recognition,光学字符识别),是指电子设备(例如扫描仪或
数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别
方法将形状翻译成计算机文字的过程;针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件识别图像中的文字等信息的技术。

2 ddddocr

ddddocr 是一款简单实用的识别验证码的库。
安装方法如下:
镜像安装:pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple
或 pip install ddddocr -i https://mirrors.aliyun.com/pypi/simple/
有的环境可能需要 numpy 更新
pip install --upgrade numpy -i https://mirrors.aliyun.com/pypi/simple/

3使用案例

import ddddocr
ocr = ddddocr.DdddOcr()
with open('code.png', 'rb') as f:
	img_bytes = f.read()
res = ocr.classification(img_bytes)
print('字母组合为'+res)

4 常见问题

报错:Microsoft Visual C++ Redistributable for Visual Studio 2019 not installed on the machine
解决方案:安装 Microsoft Visual C++ Redistributable 2019
Microsoft Visual C++ Redistributable 2019x86
Microsoft Visual C++ Redistributable 2019x64

代码详情

from selenium import webdriver
from selenium.webdriver.common.by import By
import ddddocr
driver = webdriver.Chrome()
driver.get('网址')
t=True
while(t):
    window1=driver.get_cookies()
    img = driver.find_element(By.XPATH,'/html/body/div[2]/div/div/div/form/div[3]/div[2]/div/img')
    img.screenshot('test.png')
    ocr = ddddocr.DdddOcr()
    with open("test.png", 'rb') as f:
        image = f.read()
    res = ocr.classification(image)
    driver.find_element(By.XPATH, value="/html/body/div[2]/div/div/div/form/div[1]/input").send_keys('账号')
    driver.find_element(By.XPATH,value="/html/body/div[2]/div/div/div/form/div[2]/input").send_keys('密码')
    driver.find_element(By.XPATH,value="/html/body/div[2]/div/div/div/form/div[3]/div[1]/div/input").send_keys(res)
    driver.find_element(By.XPATH, '/html/body/div[2]/div/div/div/form/div[4]/p[2]/button').click()
    window2=driver.get_cookies()
    if window1!=window2:
        t=False
    else:
        driver.refresh()


获得XPATH方法

1.打开登录页面,右键检查

在这里插入图片描述
2.再次点击右键,复制下来就可以了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/454716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel数据分列的详细用法

Excel数据分列的详细用法 数据分列常见功能有日期格式的转换,有规律的数据分列,固定宽度的数据分列,读书屋办公教程网这篇文章将详细讲解Excel快速填充及文本与数值的互换。 软件演示版本:Microsoft Excel2019 快速填充 如下图表…

Dialect及Operation详解

参考资料: [MLIR] Dialect及Operation详解 - 知乎 (zhihu.com) 2. Dialect 及Operation 2.1Dialect 2.1.1Dialect 是什么? 从源程序到目标程序,要经过一系列的抽象以及分析,通过 Lowering Pass 来实现从一个IR到另一个IR的转换。…

力扣刷题——双数之和

很多人去力扣刷题都是数组的第一题,也就是双数之和,相信这也是很多人劝退题目,甚至对自己学过的知识产生了怀疑,这真的是我学完C语言,Java,Python或C之后能做出来的题目吗?直接劝退了很多人&…

使用 Lombok 的 @Accessors(chain=true) 的注意事项

前言 大家在日常开发中想必都有使用过 Lombok 的 Accessors(chaintrue) 注解吧,这个确实有时候会让我们的get/set方法变的非常的便捷,但是从中又隐藏了一些注意细节,我们一起来看看。 注解介绍 Accessors(chaintrue) 在我们的实体类或者对…

curl检测网页的用法

一般网页状态为200都是正常的,还有一种情况是网页做了跳转,这种情况下网页状态码为301,http的head里会有lcation记录跳转的地址 这个方法不太好用,取出来的值后面会带回车键值可以将值输出到文本里就会看到末尾有带回车键值&…

solidworks2022 - 双开

文章目录 solidworks2022 - 双开概述实验END solidworks2022 - 双开 概述 如果要参照一份设计文件, 画自己的设计. solidworks双开就有点刚需的意思了. 如果只是双击打开参考设计和自己的现有工程, 只能在一个solidworks中同时打开2份工程. 虽然可以跨区显示, 但是一份设计进…

Git很少用到但是很有用的几个命令

Git的有些命令已经融入到血液中,通常情况下大脑可能还没有想出来,键盘却已经敲出来了。 但是同样有一些Git命令,平时用不上,但真正遇到了使用场景时,却怎么也想不起来,不得不面向CSDN编程。 比如有时候git …

推荐 | 基于飞凌嵌入式i.MX8MM核心板的压力位移分析仪应用方案

来源:飞凌嵌入式官网 www.forlinx.com 随着工业制造领域的高速发展,工业生产中对于材料力学性能的要求也随之上升,因此就需要有更加精确和可靠的测量仪器来满足需求。于是压力位移分析仪应运而生,大大提高了材料测试的准确性…

【荐书】分享5种程序员需要的战略思维

⭐️ 大家好,我是爱读书的小雨青年。我很高兴参加了周掌柜《战略思维十二讲》的线下新书发布会。 ⭐️ 新书发布会分为两个部分,上半场是周掌柜本人的自我介绍,以及对本书的一些讲解。在我看来讲解程度十分细致了,周掌柜本人给人一…

[世界读书日] 最好的书,都在博雅之中

今天是世界读书日(4月23日),还是谈谈读书。 我很少看到有人说读书不好的,但很少看到有人爱读书,也很少看到有人读到了好书。 好书、好读书、读好书,都是很稀缺的。 一、好书的作用 基本上,我们遇…

项目管理中,如何拒绝客户的要求?

在生活中,我们要面对各种各样的人和事,要学如何去拒绝别人提出的要求。 这些要求,有符合我们意愿的,也有不符合我们意愿的;有我们能接受的,也有我们需要拒绝的。 这是我们日常生活的一部分,并…

IJKPLAYER源码分析-主要队列

前言 对IJKPLAYER播放器内核几个关键的队列的理解,将有助于掌控全局。因此,这里简要介绍所涉及到的几个关键队列实现: PacketQueue:压缩数据队列,是一个带有首尾指针和回收单链表头指针的单链表结构,用来实…

iptables和firewalld防火墙

安全技术和防火墙概述 安全技术 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决…

SLAM论文速递【SLAM—— 基于平面特征的动态SLAM—4.24(2)

论文信息 题目: Dynamic SLAM Based on Planar Features 基于平面特征的动态SLAM论文地址: https://ieeexplore.ieee.org/abstract/document/9834113发表期刊: 2022 7th International Conference on Automation, Control and Robotics En…

从源码全面解析 ArrayBlockingQueue 的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

前缀索引,在性能和空间中寻找平衡

文章目录 1.什么是前缀索引2.什么是索引选择性3.创建前缀索引3.1 一个小案例3.2 前缀索引3.3 一个问题 4. 回到开始的问题5.小结 我们在项目的具体实践中,有时候会遇到一些比较特殊的字段,例如身份证号码。 松哥之前有一个小伙伴做黑龙江省的政务服务网&…

手持式激光焊接机多少钱一台

目前很火的一台机器,相比于传统的焊接,手持激光焊接机最大的亮点在于: 1、对于操作工人没有要求:不需要焊工证、男女老少均可 这样可以大大节省人工成本 2、焊接质量 由于他的焊接效率、操作性能比较突出,即便是第一…

C++面试指南——类常用知识点概念总结(附C++进阶视频教程)

构造函数 构造函数可以抛出异常,可以重载,如果在实例化时在类名后面加个括号,只是创建了一个匿名的对象。构造不能是虚函数,因为此时虚函数表还没有初始化。new对象会调解构造函数。没有定义拷贝构造时,IDE会自动生成…

宝塔面板安装配置MySQL,轻松管理数据库【公网远程访问】

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar内网穿透4. 创建HTTP隧道映射mysql端口5.远程连接6.固定TCP地址6.1 保留一个固定的公网TCP端口地址6.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单…

软件测试常规测试过程模型——V模型与X模型

一、V模型简单介绍及讲解 V模型是软件测试过程模型中最广为人知的模型,尽管很多富有实际经验的测试人员还是不太熟悉V模型,或者其它的模型。V模型中的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确地标明了测试过…