Maison >développement back-end >Tutoriel Python >Python utilise la bibliothèque Tesseract pour implémenter la vérification d'identification

Python utilise la bibliothèque Tesseract pour implémenter la vérification d'identification

小云云
小云云original
2018-03-29 13:31:271914parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn