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解析xml文件实例分享
Dec 04 Python
python使用fork实现守护进程的方法
Nov 16 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
PyTorch 1.0 正式版已经发布了
Dec 13 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
python scatter函数用法实例详解
Feb 11 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
Python定义一个函数的方法
Jun 15 Python
Python字符串的15个基本操作(小结)
Feb 03 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
php 类自动载入的方法
2015/06/03 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
javascript轮播图算法
2016/10/21 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
外企求职信范文分享
2013/12/31 职场文书
上级检查欢迎词
2014/01/18 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
社区反邪教工作方案
2014/06/16 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
Python天气语音播报小助手
2021/09/25 Python
如何使用python包中的sched事件调度器
2022/04/30 Python