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

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 1OCR2 ddddocr3使用案例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.打开登录页面,右键检查


30.png


2.再次点击右键,复制下来就可以了


31.png



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8月前
|
搜索推荐 API 数据安全/隐私保护
使用Selenium进行网页登录和会话管理
使用Selenium进行网页登录和会话管理
|
4月前
|
Python
使用selenium的edge浏览器登录某为
使用selenium的edge浏览器登录某为
29 0
|
9月前
|
数据采集 存储 NoSQL
实现网页认证:使用Scrapy-Selenium处理登录
在网络爬虫的世界中,我们经常需要面对一些需要用户认证的网页,如登录、注册验证等。本文将介绍如何使用Scrapy-Selenium来处理这类网页,实现自动化登录和爬取。
180 0
实现网页认证:使用Scrapy-Selenium处理登录
python+selenium 通过添加cookies或token解决网页上验证码登录问题
cookie或token可以保存登录信息,当我们拿到cookie后,可以通过向浏览器发送cookie中记录的数据,直接变成登录状态,不需要再登录。
1873 0
|
数据采集 人工智能 JavaScript
python3爬虫:使用Selenium带Cookie登录并且模拟进行表单上传文件
前文再续,书接上一回,之前一篇文章我们尝试用百度api智能识别在线验证码进行模拟登录:[Python3.7爬虫:实时api(百度ai)检测验证码模拟登录(Selenium)页面](https://v3u.cn/a_id_134),这回老板又发话了,编辑利用脚本虽然登录成功了,但是有一些表单还是得手动上传,希望能改造成自动化流程。说实话,没毛病,机器能干的事,就没必要麻烦人了,拿人钱财,替人办事,开干。
python3爬虫:使用Selenium带Cookie登录并且模拟进行表单上传文件
|
Web App开发 数据安全/隐私保护
Selenium验证码ddddocr识别:带带ddocr
账户密码输入后,需要识别填写验证码 思路: 由于验证码不是图片,需要用到selenium进行截取验证码,然后通过ddddocr识别数字 import time import ddddocr from selenium import webdriver driver = webdriver.Chrome()# Chrome浏览器 driver.get("http://online.hncen.net/")# time.sleep(5) imgelement = driver.find_element.
539 0
Selenium验证码ddddocr识别:带带ddocr
针对滑动拼图验证码的python&selenium解法
针对滑动拼图验证码的python&selenium解法
针对滑动拼图验证码的python&selenium解法
|
Web App开发 数据采集 缓存
selenium,自动化测试如何绕开登录2
selenium,自动化测试如何绕开登录2
|
JavaScript 开发工具 数据安全/隐私保护
使用.net 和Selenium模拟百度登录
使用自动化技术来模拟下百度登录
201 0
使用.net 和Selenium模拟百度登录
|
2月前
|
JavaScript 前端开发 测试技术
Python Selenium基本用法
Python Selenium基本用法
29 2

热门文章

最新文章