python图片验证码识别最新模块muggle_ocr的示例代码


Posted in Python onJuly 03, 2020

一.官方文档

https://pypi.org/project/muggle-ocr/

二模块安装

pip install muggle-ocr
# 因模块过新,阿里/清华等第三方源可能尚未更新镜像,因此手动指定使用境外源,为了提高依赖的安装速度,可预先自行安装依赖:tensorflow/numpy/opencv-python/pillow/pyyaml

三.使用代码

# 导入包
import muggle_ocr

# 初始化;model_type 包含了 ModelType.OCR/ModelType.Captcha 两种
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)
# ModelType.OCR 可识别光学印刷文本 这里个人觉得应该是官方文档写错了 官方文档是ModelType.Captcha 可识别光学印刷文本
with open(r"test1.png", "rb") as f:
 b = f.read()
text = sdk.predict(image_bytes=b)
print(text)

# ModelType.Captcha 可识别4-6位验证码
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)
with open(r"test1.png", "rb") as f:
 b = f.read()
text = sdk.predict(image_bytes=b)
print(text)

PS:下面看下 Python 实现全自动登录(真正的全自动,自动识别验证码)

你没有看错,全自动验证~~~

黑科技?还是黑代码?
我感觉这个看在你用啥,对不对?反正我用来(* * * * ) 你懂得

好了,先说一下用到的东西

  • selenium (本意是用来全自动测试)
  • Phantomjs (一种没有界面的浏览器)
  • ** 验证码识别器(一块钱可用100次的这种)

关门放代码

from selenium import webdriver
from PIL import Image
if __name__ == '__main__':
 wbe = webdriver.PhantomJS()
 wbe.get("https://www.某个网站的登录页面.com/login/index.html")//你可以拿知乎,百度,等等测试
 element = wbe.find_element_by_xpath('//*[@id="entry_name"]/p[3]/img')//验证码所在的xpath路径
 left = element.location['x']
 top = element.location['y']
 right = element.location['x'] + element.size['width']
 bottom = element.location['y'] + element.size['height']
 im = Image.open(r'登录页.png')//全页面截屏
 im = im.crop((left, top, right, bottom))
 im.save('验证码.png')
#!/usr/bin/env python
# coding:utf-8
import requests
from hashlib import md5
class RClient(object):
 def __init__(self, username, password, soft_id, soft_key):
  self.username = username
  self.password = md5(password).hexdigest()
  self.soft_id = soft_id
  self.soft_key = soft_key
  self.base_params = {
   'username': self.username,
   'password': self.password,
   'softid': self.soft_id,
   'softkey': self.soft_key,
  }
  self.headers = {
   'Connection': 'Keep-Alive',
   'Expect': '100-continue',
   'User-Agent': 'ben',
  }
 def rk_create(self, im, im_type, timeout=60):
  """
  im: 图片字节
  im_type: 题目类型
  """
  params = {
   'typeid': im_type,
   'timeout': timeout,
  }
  params.update(self.base_params)
  files = {'image': ('a.png', im)}
  r = requests.post('http://api.ruokuai.com/create.json', data=params, files=files, headers=self.headers)
  return r.json()
 def rk_report_error(self, im_id):
  """
  im_id:报错题目的ID
  """
  params = {
   'id': im_id,
  }
  params.update(self.base_params)
  r = requests.post('http://api.ruokuai.com/reporterror.json', data=params, headers=self.headers)
  return r.json()
def get_code():
 rc = RClient('用户名', '密码', '94522', '62c235939b7240879453f31603733fd6')//想拿下测试的留言我,教你拿到测试账号
 im = open('a.png', 'rb').read()
 print rc.rk_create(im, 3040)

完整代码

#!/usr/bin/env python
# coding:utf-8
from selenium import webdriver
from PIL import Image
import requests
from hashlib import md5
import time
class RClient(object):
 def __init__(self, username, password, soft_id, soft_key):
  self.username = username
  self.password = md5(password.encode("utf-8")).hexdigest()
  self.soft_id = soft_id
  self.soft_key = soft_key
  self.base_params = {
   'username': self.username,
   'password': self.password,
   'softid': self.soft_id,
   'softkey': self.soft_key,
  }
  self.headers = {
   'Connection': 'Keep-Alive',
   'Expect': '100-continue',
   'User-Agent': 'ben',
  }
 def rk_create(self, im, im_type, timeout=60):
  """
  im: 图片字节
  im_type: 题目类型
  """
  params = {
   'typeid': im_type,
   'timeout': timeout,
  }
  params.update(self.base_params)
  files = {'image': ('a.png', im)}
  r = requests.post('http://api.ruokuai.com/create.json', data=params, files=files, headers=self.headers)
  return r.json()
 def rk_report_error(self, im_id):
  """
  im_id:报错题目的ID
  """
  params = {
   'id': im_id,
  }
  params.update(self.base_params)
  r = requests.post('http://api.ruokuai.com/reporterror.json', data=params, headers=self.headers)
  return r.json()
def get_code(im_file):
 rc = RClient('账号', '密码', '94522', '62c235939b7240879453f31603733fd6')
 im_source = open(im_file, "rb").read()
 print(rc.rk_create(im_source, 3040))
if __name__ == '__main__':
 wbe = webdriver.PhantomJS()
 wbe.get("https://www.dajiang365.com/login/index.html")
 time.sleep(2)
 wbe.save_screenshot("das.png")
 element = wbe.find_element_by_xpath('//*[@id="entry_name"]/p[3]/img')
 left = element.location['x']
 top = element.location['y']
 right = element.location['x'] + element.size['width']
 bottom = element.location['y'] + element.size['height']
 im = Image.open(r'das.png')
 im = im.crop((left, top, right, bottom))
 im.save('a.png')
 time.sleep(2)
 get_code("a.png")

总结

到此这篇关于python图片验证码识别最新模块muggle_ocr的示例代码的文章就介绍到这了,更多相关python 验证码识别模块muggle_ocr内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python实现12306火车票查询器
Apr 20 Python
Python科学画图代码分享
Nov 29 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
django 通过URL访问上传的文件方法
Jul 28 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python 文件数据读写的具体实现
Jan 24 Python
详解python itertools功能
Feb 07 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
只用Python就可以制作的简单词云
Jun 07 Python
Python上下文管理器Content Manager
Jun 26 Python
keras topN显示,自编写代码案例
Jul 03 #Python
python如何使用代码运行助手
Jul 03 #Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 #Python
python3 简单实现组合设计模式
Jul 02 #Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 #Python
django 装饰器 检测登录状态操作
Jul 02 #Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 #Python
You might like
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP最常用的正则表达式
2017/02/13 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
python简单实现获取当前时间
2016/08/27 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
保险专业自荐信范文
2014/02/20 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
中小学生学籍证明
2014/10/25 职场文书
感谢信怎么写
2015/01/21 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang