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中for循环详解
Jan 17 Python
Python中用memcached来减少数据库查询次数的教程
Apr 07 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
Python生成器的使用方法和示例代码
Mar 04 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
python根据字典的键来删除元素的方法
Aug 16 Python
python入门之算法学习
Apr 22 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
php实现网页端验证码功能
2017/07/11 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
Backbone.js中的集合详解
2015/01/14 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
jquery实现聊天机器人
2020/02/08 jQuery
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
员工工作表扬信范文
2014/01/13 职场文书
梅花魂教学反思
2014/04/25 职场文书
公司合作协议范文
2014/10/01 职场文书
2014年内勤工作总结
2014/11/24 职场文书
初中家长评语和期望
2014/12/26 职场文书
运动会加油稿50字
2015/07/21 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS