Heim  >  Artikel  >  Backend-Entwicklung  >  Python verwendet die Tesseract-Bibliothek, um die Identifizierungsüberprüfung zu implementieren

Python verwendet die Tesseract-Bibliothek, um die Identifizierungsüberprüfung zu implementieren

小云云
小云云Original
2018-03-29 13:31:271871Durchsuche

1. Einführung in Tesseract

Tesseract ist eine OCR-Bibliothek (OCR ist die Abkürzung für Optical Character Recognition auf Englisch). Bei der Verarbeitung und Beschaffung von Text- und Layoutinformationen gilt Tesseract derzeit als die beste OCR-Bibliothek mit relativ genauer Erkennung.

2. Verwendung von Tesseract

1. Zum Herunterladen klicken

2. Umgebungsvariablen unter Windows festlegen:


#根据下载安装文件的路径配置环境变量
set TESSDATA_PREFIX F:\Tesseract-OCR\

3. Installieren Sie das Pytesseract-Modul


pip install pytesseract

4. Führen Sie die Anwendung tesseract.exe ein Python-Skript Programmmethode:


pytesseract.pytesseract.tesseract_cmd = r'F:\Tesseract-OCR\tesseract.exe'

5. Falldemonstration

Erkennen Sie den folgenden Bildtext:


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)

Ergebnisdemonstration:

f04bc23b9ae895a4298192af8c3c2894
Google

Hinweis: Einige Bestätigungscodes können von der Tesseract-OCR-Engine nicht erkannt werden. Beispielsweise kann der von Douban generierte Bestätigungscode seinen Inhalt nicht erkennen Geben Sie den Bestätigungscode manuell ein:

3. Simulierter Login-Zhihu-Quellcode


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')

Verwandte Empfehlungen:

Pytesseract unter Python aufrufen, um einen Website-Bestätigungscode zu identifizieren

Das obige ist der detaillierte Inhalt vonPython verwendet die Tesseract-Bibliothek, um die Identifizierungsüberprüfung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn