Zsyl 2021-08-19 22:23:33 阅读数:903
Objectifs d'apprentissage
OCR(Optical Character Recognition) Est l'utilisation d'un scanner ou d'une caméra numérique pour numériser des données textuelles dans un fichier image , Le fichier image est ensuite analysé , Logiciel d'identification automatique pour obtenir des informations textuelles et de mise en page .
https://github.com/tesseract-ocr/tesseract
1 Installation du moteur
brew install --with-training-tools tesseract
windows Installation dans l'environnement
Peut passerexe Installation du paquet d'installation , L'adresse de téléchargement est disponible à partir de GitHubDans le projetwikiTrouver. N'oubliez pas de Tesseract Le répertoire des fichiers d'exécution est ajouté à PATHMoyenne, Pour faciliter les appels ultérieurs .
linux Installation dans l'environnement
sudo apt-get install tesseract-ocr
2 PythonInstallation de la Bibliothèque
# PIL Pour ouvrir un fichier image
pip/pip3 install pillow
# pytesseract Le module est utilisé pour analyser les données de l'image
pip/pip3 install pytesseract
from PIL import Image
import pytesseract
im = Image.open()
result = pytesseract.image_to_string(im)
print(result)
MicrosoftAzure Reconnaissance d'images:https://azure.microsoft.com/zh-cn/services/cognitive-services/computer-vision/
Reconnaissance de texte Dao Zhi Yun :http://aidemo.youdao.com/ocrdemo
.Alibaba Cloud picture and Text Recognition :https://www.aliyun.com/product/cdi/
TencentOCRReconnaissance de texte:https://cloud.tencent.com/product/ocr
Aujourd'hui, de nombreux sites Web utilisent des codes de vérification pour l'anti - escalade , Donc pour avoir un meilleur accès aux données , Besoin de savoir comment utiliser le Code de vérification dans le crawler de plate - forme de codage
Code Cloud :http://www.yundama.com/
Capable de résoudre l'identification universelle des codes de vérification
Code de vérification polaire aide à l'identification intelligente :http://jiyandoc.c2567.com/
Identification capable de résoudre des codes de vérification complexes
Voici un exemple de code Cloud , C'est quoi ce truc?Apprenez comment utiliser la plateforme de codage
Le code suivant est fourni par la plateforme de codage Cloud , J'ai fait un simple changement , Deux méthodes ont été mises en œuvre :
Ce qu'il faut configurer, c'est :
username = 'whoarewe' # Nom d'utilisateur
password = '***' # Mot de passe
appid = 4283 # appid
appkey = '02074c64f0d0bb9efb2df455537b01c3' # appkey
codetype = 1004 # Type de code de vérification
Cloud Code Official provided apiComme suit:
#yundama.py
import requests
import json
import time
class YDMHttp:
apiurl = 'http://api.yundama.com/api.php'
username = ''
password = ''
appid = ''
appkey = ''
def __init__(self, username, password, appid, appkey):
self.username = username
self.password = password
self.appid = str(appid)
self.appkey = appkey
def request(self, fields, files=[]):
response = self.post_url(self.apiurl, fields, files)
response = json.loads(response)
return response
def balance(self):
data = {
'method': 'balance', 'username': self.username, 'password': self.password, 'appid': self.appid,
'appkey': self.appkey}
response = self.request(data)
if (response):
if (response['ret'] and response['ret'] < 0):
return response['ret']
else:
return response['balance']
else:
return -9001
def login(self):
data = {
'method': 'login', 'username': self.username, 'password': self.password, 'appid': self.appid,
'appkey': self.appkey}
response = self.request(data)
if (response):
if (response['ret'] and response['ret'] < 0):
return response['ret']
else:
return response['uid']
else:
return -9001
def upload(self, filename, codetype, timeout):
data = {
'method': 'upload', 'username': self.username, 'password': self.password, 'appid': self.appid,
'appkey': self.appkey, 'codetype': str(codetype), 'timeout': str(timeout)}
file = {
'file': filename}
response = self.request(data, file)
if (response):
if (response['ret'] and response['ret'] < 0):
return response['ret']
else:
return response['cid']
else:
return -9001
def result(self, cid):
data = {
'method': 'result', 'username': self.username, 'password': self.password, 'appid': self.appid,
'appkey': self.appkey, 'cid': str(cid)}
response = self.request(data)
return response and response['text'] or ''
def decode(self, filename, codetype, timeout):
cid = self.upload(filename, codetype, timeout)
if (cid > 0):
for i in range(0, timeout):
result = self.result(cid)
if (result != ''):
return cid, result
else:
time.sleep(1)
return -3003, ''
else:
return cid, ''
def post_url(self, url, fields, files=[]):
# for key in files:
# files[key] = open(files[key], 'rb');
res = requests.post(url, files=files, data=fields)
return res.text
username = 'whoarewe' # Nom d'utilisateur
password = '***' # Mot de passe
appid = 4283 # appid
appkey = '02074c64f0d0bb9efb2df455537b01c3' # appkey
filename = 'getimage.jpg' # Emplacement du fichier
codetype = 1004 # Type de code de vérification
# Temps mort
timeout = 60
def indetify(response_content):
if (username == 'username'):
print('请设置好相关参数再测试')
else:
# Initialisation
yundama = YDMHttp(username, password, appid, appkey)
# Connectez - vous au Code Cloud
uid = yundama.login();
print('uid: %s' % uid)
# Rechercher le solde
balance = yundama.balance();
print('balance: %s' % balance)
# Commencez à reconnaître ,Chemin de l'image, Type de code de vérification ID,Temps mort(Secondes),Résultats de l'identification
cid, result = yundama.decode(response_content, codetype, timeout)
print('cid: %s, result: %s' % (cid, result))
return result
def indetify_by_filepath(file_path):
if (username == 'username'):
print('请设置好相关参数再测试')
else:
# Initialisation
yundama = YDMHttp(username, password, appid, appkey)
# Connectez - vous au Code Cloud
uid = yundama.login();
print('uid: %s' % uid)
# Rechercher le solde
balance = yundama.balance();
print('balance: %s' % balance)
# Commencez à reconnaître ,Chemin de l'image, Type de code de vérification ID,Temps mort(Secondes),Résultats de l'identification
cid, result = yundama.decode(file_path, codetype, timeout)
print('cid: %s, result: %s' % (cid, result))
return result
if __name__ == '__main__':
pass
C'est un type très simple de code de vérification , L'adresse correspondante n'a besoin que d'un code de vérification , Et demande , Identifié par la plate - forme de codage
Ce type de code de vérification est plus courant , Pour ce code de vérification , Tout le monde doit réfléchir :
Pendant la connexion , Supposons que le Code de vérification que j'ai entré soit correct , Comment le serveur opposé juge - t - il que le Code de vérification que j'ai entré est celui qui apparaît sur mon écran , Au lieu des autres codes de vérification ?
En accédant à la page web , Demander un code de vérification , Et quand le Code de vérification est soumis , Le serveur opposé a dû vérifier que le Code de vérification que j'ai obtenu précédemment et le dernier Code de vérification soumis étaient le même Code de vérification , Veuillez définir les paramètres pertinents avant le test ?
C'est évident,C'est parcookiePour y arriver., Donc la correspondance , Sur la page de demande , Demander un code de vérification , Une garantie est requise pour la soumission du Code de vérification cookieCohérence,Peut être utilisé pour celarequests.session
C'est réglé.
Résumé
Allez!
Merci beaucoup.!
Un effort.!
Copyright:Cet article est[Zsyl]Établi,Veuillez apporter le lien original pour réimprimer,remercier。 https://fra.fheadline.com/2021/08/20210819222327293c.html