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

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

小云云
Freigeben: 2018-03-29 13:31:27
Original
1884 Leute haben es durchsucht

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\
Nach dem Login kopieren

3. Installieren Sie das Pytesseract-Modul


pip install pytesseract
Nach dem Login kopieren

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


pytesseract.pytesseract.tesseract_cmd = r'F:\Tesseract-OCR\tesseract.exe'
Nach dem Login kopieren

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)
Nach dem Login kopieren

Ergebnisdemonstration:


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')
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage