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进程的信号通讯
Apr 09 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python中Django框架下的staticfiles使用简介
May 30 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
浅析Python函数式编程
Oct 06 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
Python统计时间内的并发数代码实例
Dec 28 Python
Python列表list操作相关知识小结
Jan 29 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 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
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
Yii rules常用规则示例
2016/03/15 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
Ajax::prototype 源码解读
2007/01/22 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
如何使用python爬取csdn博客访问量
2016/02/14 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
Python多进程写入同一文件的方法
2019/01/14 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
python实现计算图形面积
2021/02/22 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
商务助理岗位职责
2013/11/13 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
上课迟到检讨书
2014/02/19 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
工会文体活动总结
2015/05/07 职场文书
五一晚会主持词
2015/07/01 职场文书
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
box-shadow单边阴影的实现
2023/05/21 HTML / CSS