python图片验证码识别最新模块muggle_ocr的示例代码
一.官方文档
https://pypi.org/project/muggle-ocr/
二模块安装
pipinstallmuggle-ocr #因模块过新,阿里/清华等第三方源可能尚未更新镜像,因此手动指定使用境外源,为了提高依赖的安装速度,可预先自行安装依赖:tensorflow/numpy/opencv-python/pillow/pyyaml
三.使用代码
#导入包 importmuggle_ocr #初始化;model_type包含了ModelType.OCR/ModelType.Captcha两种 sdk=muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR) #ModelType.OCR可识别光学印刷文本这里个人觉得应该是官方文档写错了官方文档是ModelType.Captcha可识别光学印刷文本 withopen(r"test1.png","rb")asf: 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) withopen(r"test1.png","rb")asf: b=f.read() text=sdk.predict(image_bytes=b) print(text)
PS:下面看下Python实现全自动登录(真正的全自动,自动识别验证码)
你没有看错,全自动验证~~~
黑科技?还是黑代码?
我感觉这个看在你用啥,对不对?反正我用来(****)你懂得
好了,先说一下用到的东西
- selenium(本意是用来全自动测试)
- Phantomjs(一种没有界面的浏览器)
- **验证码识别器(一块钱可用100次的这种)
关门放代码
fromseleniumimportwebdriver fromPILimportImage 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/envpython #coding:utf-8 importrequests fromhashlibimportmd5 classRClient(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', } defrk_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) returnr.json() defrk_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) returnr.json() defget_code(): rc=RClient('用户名','密码','94522','62c235939b7240879453f31603733fd6')//想拿下测试的留言我,教你拿到测试账号 im=open('a.png','rb').read() printrc.rk_create(im,3040)
完整代码
#!/usr/bin/envpython #coding:utf-8 fromseleniumimportwebdriver fromPILimportImage importrequests fromhashlibimportmd5 importtime classRClient(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', } defrk_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) returnr.json() defrk_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) returnr.json() defget_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内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!