python 단순 인증 코드 인식 실현 과정
1.1 pillow 와 pytesseract 설치
python 모듈 라 이브 러 리 는 pillow 와 pytesseract 라 이브 러 리 가 필요 합 니 다.직접 pip install 로 설치 하면 됩 니 다.
pip install pillow
pip install pytesseract
1.2 Tesseract-OCR.exe 설치다운로드 주소:ocr 다운로드 주소
최신 안정 버 전 다운로드 권장:
tesseract-ocr-w64-setup-v5.0.0.20190623.exe。
설치 과정 은 매우 간단 합 니 다.다음 단 계 를 클릭 하면 끝 납 니 다.그 사이 에 설치 경 로 를 기본 으로 할 수도 있 고 설치 경 로 를 사용자 정의 할 수도 있 습 니 다.설치 한 후에 설치 경 로 를 환경 변수 에 추가 하면 됩 니 다.제 것 처럼:
내 설치 위치:
환경 변 수 는 이렇게 추가 합 니 다.
1.3 pytesseract.py 의 ocr 경 로 를 변경 합 니 다.
우리 pip install pytesseract 이후 python 해석 기 설치 위치 패키지 에서 pytesseract.py 파일 을 찾 을 수 있 습 니 다.다음 과 같 습 니 다.
열 면 변경:
이로써 환경 준비 작업 은 큰 성 과 를 거 둔 셈 이다.
2.식별 효과 테스트
ocr 는 기본 으로 설치 되 어 있 습 니 다.처음에 숫자 와 영문 자모 인식 을 지원 할 수 있 습 니 다.그 다음 에
우 리 는 인증 코드 그림 을 준비 합 니 다.
그림 을 captcha.png 라 고 명명 하여 프로그램 과 같은 디 렉 터 리 에 놓 습 니 다.
import pytesseract
from PIL import Image
image = Image.open("captcha.png")
print(pytesseract.image_to_string(image))
효과:우 리 는 다시 중국어 인식 을 시도 해 보 자.
식별 하기 전에 우 리 는 먼저 중국어 확장 언어 팩 을 다운로드 해 야 한다.
언어 팩 주소
필요 한 언어 패 키 지 를 다운로드 하 십시오.다음 그림 과 같 습 니 다.빨간색 상자 안에 중국어 간 체 언어 패 키 지 를 포함 합 니 다.
다운로드 후 이 가방 을 ocr 프로그램 설치 디 렉 터 리 의 tessdata 폴 더 에 직접 넣 으 면 됩 니 다.
그림 을 찾 아 테스트 해 보 세 요.
import pytesseract
from PIL import Image
image = Image.open("00.jpg")
print(pytesseract.image_to_string(image,lang='chi_sim'))
효과:때때로 텍스트 식 별 률 이 높 지 않 기 때문에 이미지 식별 전에 먼저 이미지 에 대해 그 레이스 케 일과 이치 화 를 하 는 것 을 권장 한다
코드 예제:
import pytesseract
from PIL import Image
file = r"00.jpg"
#
image = Image.open(file)
Img = image.convert('L') #
# , , 。threshold ( 255)。
threshold = 180
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
photo = Img.point(table, '1') #
#
photo.save('01.jpg')
image = Image.open('01.jpg')
# ,lang='chi_sim' , English
# , config='--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789'
content = pytesseract.image_to_string(image, lang='chi_sim')
print(content)
3.실전 사례 C 고시 문 망 인증 코드 자동 식별 로그 인 실현
import pytesseract
from PIL import Image
from selenium import webdriver
def save_captcha(path):
driver = webdriver.Chrome() #
driver.maximize_window()
driver.implicitly_wait(10)
driver.get(url=url)
image = driver.find_element_by_id('imgCode')
image.screenshot(path)
return driver
def recognize_captcha(captcha_path):
captcha = Image.open(captcha_path) #
grap = captcha.convert('L') #
data = grap.load() #
w, h = captcha.size # ( , )
#
for x in range(w):
for y in range(h):
if data[x, y] < 140:
data[x, y] = 0
else:
data[x, y] = 255
code = pytesseract.image_to_string(grap) #
return code
def login(driver, code):
flag = True
email = '[email protected]' #
password = 'xxxx'
try:
driver.find_element_by_id('email').send_keys(email)
driver.find_element_by_id('pwd').send_keys(password)
driver.find_element_by_id('code').send_keys(code)
driver.implicitly_wait(10)
driver.find_element_by_id('denglu').click()
except Exception as ex:
flag = False
return flag
if __name__ == '__main__':
url = 'https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'
captcha_path = './captcha.png'
count = 1
driver = save_captcha(captcha_path) #
code = recognize_captcha(captcha_path) #
print(' :', code)
if login(driver, code):
driver.quit()
효 과 는 다음 과 같다.총결산
python 이 간단 한 인증 코드 인식 을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 인증 코드 인식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.