一、首先安装 tesseract-ocr-setup-4.00.00dev.exe
下载地址 链接:https://pan.baidu.com/s/1PFIrfNeUjmrXlUABS8SquA
提取码:dctm
1.直接安装
2.安装完之后,将目录(C:\Program Files (x86)\Tesseract-OCR) 配置到path中
3.新建一个系统变量,名称为“ TESSDATA_PREFIX” 内容跟步骤二一样的内容
二、配置完系统变量之后,我们先查看下是否安装好了
1.运行cmd
2.输入命令 tesseract.exe 1.png output -l eng (图片为1.png)
3.那么就会在当前路径 输出一个outinput的txt文件了,文件里面的内容 就是识别出来的内容
三、安装 PIL(Pillow-3.4.2-cp36-cp36m-win_amd64)
1.如果pip安装不行的话 这里下载地址分享给你们给你们
链接:https://pan.baidu.com/s/1_DOGYfVkx5u2pg73hP_hFA
提取码:d25h
四、安装 pytesseract
1.这个毫无疑问 直接 pip3 install pytesseract
五、最后 就是如何使用了
1.记住如果提示环境变量有问题 那就是因为你们创建那个叫做TESSDATA_PREFIX的系统变量,或者她对应的路径错误
2.使用代码展示
import pytesseract
from PIL import Image
code = pytesseract.image_to_string(Image.open(r"%s.png" %tel), lang='eng').replace(" ", "")
3.只要这三行代码,你就能得到 纯数字验证码了(当然这个如果你需要识别中文或者其他的文字,需要下载啥补丁包)。
六、最后分享某网址的注册脚本源代码(域名显示xxx)
import requests
import pytesseract
from PIL import Image
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
class Spider38363(object):
def __init__(self):
self.host = "https://www.xxxxx.com"
self.requests = requests.session()
self.msg = ""
self.telprefix = str(input("请输入您需要注册的号码前七位:"))
self.prefixstart = int(input("请输入您需要注册的号码后四位开始:"))
self.telprefixend = int(input("请输入您需要注册的号码后四位结束:"))
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
def registered_user(self, captcha, tel):
flag = {}
registbody = {'username': tel, 'mobile_phone': tel, 'password': '123ASD',
're_password': '123ASD', 'weixin': '123456',
'withdraw_realname': '%E4%BD%A0%E5%A5%BD%E8%80%81%E5%93%A5', 'captcha': captcha,
'reg_terminal': '1', 'e164': '86_18607410000', 'unique_id': ''}
try:
flag = self.requests.post(url=self.host + "/cn/cgi/api/register", data=registbody, verify=False,
timeout=10,headers=self.header).json()
self.msg = flag.get("msg")
except Exception as ex:
print("服务器异常 注册接口无法得到正确的请求:%s" % ex)
pass
if flag.get("status") == 1:
return 1
else:
return 0
def save_verifycode_image(self):
with open("verifycode.png", "wb") as f:
try:
html = self.requests.get(url=self.host + "/cn/cgi/api//captcha?a=0.973962746915739", verify=False,
timeout=10,headers=self.header).content
f.write(html)
except Exception as ex:
print("服务器异常 保存图片接口无法得到正确的请求:%s" % ex)
pass
if __name__ == "__main__":
xiejiangpeng = Spider38363()
success_number = 0
failure_number = 0
for i in range(xiejiangpeng.prefixstart, xiejiangpeng.telprefixend):
tel = xiejiangpeng.telprefix + str(i)
xiejiangpeng.save_verifycode_image()
code = "1234"
try:
code = pytesseract.image_to_string(Image.open(r"verifycode.png"), lang='eng').replace(" ", "")
except Exception as ex:
print("ocr识别图片出错 %s " % ex)
num = xiejiangpeng.registered_user(captcha=code, tel=tel)
if num == 1:
print("号码%s 注册成功" % tel)
success_number = success_number + 1
else:
print("号码%s 注册失败 失败信息为%s" % (tel, xiejiangpeng.msg))
failure_number = failure_number + 1
print("程序运行完成,成功数%d 失败数%d" % (success_number, failure_number))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)