Maison > Article > développement back-end > Python utilise la bibliothèque Tesseract pour implémenter la vérification d'identification
1. Introduction à Tesseract
Tesseract est une bibliothèque OCR (OCR est l'abréviation de Optical Character Recognition en anglais). Elle est utilisée pour numériser des données texte puis analyser des fichiers image. Dans le processus de traitement et d'obtention d'informations sur le texte et la mise en page, Tesseract est actuellement reconnue comme la meilleure bibliothèque OCR avec une reconnaissance relativement précise.
2. Utilisation de Tesseract
1. Téléchargez et installez Tesseract : Cliquez pour télécharger
2. Définir les variables d'environnement sous le système Windows :
#根据下载安装文件的路径配置环境变量 set TESSDATA_PREFIX F:\Tesseract-OCR\
3. Installez le module pytesseract
pip install pytesseract
4. Introduisez l'application tesseract.exe dans le Script Python Méthode de programme :
pytesseract.pytesseract.tesseract_cmd = r'F:\Tesseract-OCR\tesseract.exe'
5. Démonstration de cas
Reconnaissez le texte de l'image suivant :
import pytesseract from PIL import Image #1.引入Tesseract程序 pytesseract.pytesseract.tesseract_cmd = r'F:\Tesseract-OCR\tesseract.exe' #2.使用Image模块下的Open()函数打开图片 image = Image.open('6.jpg',mode='r') print(image) #3.识别图片文字 code= pytesseract.image_to_string(image) print(code)
Démonstration du résultat :
f04bc23b9ae895a4298192af8c3c2894
Google
Remarque : Certains codes de vérification ne peuvent pas être reconnus par le moteur tesseract-OCR. Par exemple, le code de vérification généré par Douban ne peut pas reconnaître son contenu. Si vous devez explorer les données dans Douban, vous devez le faire. entrez le code de vérification manuellement :
3. Code source de connexion Zhihu simulé
import requests import time import pytesseract from PIL import Image from bs4 import BeautifulSoup def captcha(data): with open('captcha.jpg','wb') as fp: fp.write(data) time.sleep(1) image = Image.open("captcha.jpg") text = pytesseract.image_to_string(image) print "机器识别后的验证码为:" + text command = raw_input("请输入Y表示同意使用,按其他键自行重新输入:") if (command == "Y" or command == "y"): return text else: return raw_input('输入验证码:') def zhihuLogin(username,password): # 构建一个保存Cookie值的session对象 sessiona = requests.Session() headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0'} # 先获取页面信息,找到需要POST的数据(并且已记录当前页面的Cookie) html = sessiona.get('https://www.zhihu.com/#signin', headers=headers).content # 找到 name 属性值为 _xsrf 的input标签,取出value里的值 _xsrf = BeautifulSoup(html ,'lxml').find('input', attrs={'name':'_xsrf'}).get('value') # 取出验证码,r后面的值是Unix时间戳,time.time() captcha_url = 'https://www.zhihu.com/captcha.gif?r=%d&type=login' % (time.time() * 1000) response = sessiona.get(captcha_url, headers = headers) data = { "_xsrf":_xsrf, "email":username, "password":password, "remember_me":True, "captcha": captcha(response.content) } response = sessiona.post('https://www.zhihu.com/login/email', data = data, headers=headers) print response.text response = sessiona.get('https://www.zhihu.com/people/maozhaojun/activities', headers=headers) print response.text if __name__ == "__main__": #username = raw_input("username") #password = raw_input("password") zhihuLogin('xxxx@qq.com','ALAxxxxIME')
Recommandations associées :
Appel de pytesseract sous python pour identifier un code de vérification de site Web
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!