import pytesseract
from urllib import request
import re
from PIL import Image
from http.cookiejar import MozillaCookieJar
import random
import threading
cookiejar = MozillaCookieJar('cookie.txt') # 用MozillaCookieJar类创建cookiejar对象,设置cookie保存路径 文件名
handler = request.HTTPCookieProcessor(cookiejar) # 使用cookiejar创建一个HTTPCookieProcess对象handler
opener = request.build_opener(handler) # 使用上一步创建好的handler构建一个opener
# 上面这三步最终把cookie返回给了opener,之后操作都用这个opener,就会带上cookie了
# cookiejar.load(ignore_discard=True) # 把保存到本地的cookie加载到代码里
def get_img():
url = 'https://api.liqiang365.com/validcode/get'
pytesseract.pytesseract.tesseract_cmd = r'E:\Tesseract-OCR\tesseract.exe'
img = opener.open(url)
cookiejar.save(ignore_discard=True)
image = Image.open(img)
# request.urlretrieve(url, '123.png')
# image = Image.open('123.png')
text = pytesseract.pytesseract.image_to_string(image)
texts = []
for t in text:
if t == ' ':
continue
texts.append(t)
img_text = ''.join(texts)
print('识别图片验证码:', img_text)
cookie_brsy_pic_code = re.search(r'cookie_brsy_pic_code=(.*?) for', str(cookiejar))
cookie_brsy_pic_code = cookie_brsy_pic_code.groups()[0]
# print(cookie_brsy_pic_code)
return img_text, cookie_brsy_pic_code
glock = threading.Lock()
def post(img_text, cookie_brsy_pic_code):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
glock.acquire()
ttt = [3, 5, 7, 8, 9]
shouji = '1' + str(random.choice(ttt)) + str(random.randint(100000000, 999999999))
print('手机号:' + shouji)
glock.release()
url = 'https://api.liqiang365.com/sms/send?account='+shouji+'&sendCodeType=1&code='+img_text+'&codeKey='+cookie_brsy_pic_code+'&share_tag=3'
req = request.Request(url, data='{"params":{}}'.encode('utf8'), headers=headers)
response = opener.open(req)
return response.read().decode('utf8')
ii = 0
def sb365():
img_text, cookie_brsy_pic_code = get_img()
sb365 = post(img_text, cookie_brsy_pic_code)
if '40000' in sb365:
global ii
ii += 1
print('成功注册' + str(ii), '个')
else:
print('注册失败' + sb365)
if __name__ == '__main__':
while True:
for i in range(8):
t = threading.Thread(target=sb365)
t.start()
t.join()
Tesseract案例1
最新推荐文章于 2024-03-06 11:18:46 发布