π ΠΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΊΠ°ΠΏΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python: ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΊΠ°ΠΏΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΊΠ°ΠΏΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ pytesseract ΠΈΠ»ΠΈ Pillow. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract:
from PIL import Image
import pytesseract
# ΠΡΠΊΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ°ΠΏΡΠ΅ΠΉ
image = Image.open('captcha.png')
# Π Π°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ°ΠΏΡΠ΅
text = pytesseract.image_to_string(image)
# ΠΡΠ²Π΅ΡΡΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ
print(text)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pytesseract ΠΈ Pillow, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ°ΠΏΡΠ΅ΠΉ, ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΠ΅ΠΊΡΡ Π½Π° Π½Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytesseract ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄ ΠΊΠ°ΠΏΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΡΠΌ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ°ΠΉΡΠ°. ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π·Π°ΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΏΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΊΠ°ΠΏΡΡ Π² Python?
ΠΠ°ΠΏΡΠ° β ΡΡΠΎ Π·Π°ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ°Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±ΠΎΡΠΎΠΌ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΊΡΡ Π·Π°Π΄Π°ΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠΏΡΠΎΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄ ΠΊΠ°ΠΏΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΠΈ Π½Π΅Π΄ΠΎΡΡΠΎΠΉΠ½ΡΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ, ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½ΡΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΅Π΅ ΠΎΠ±Ρ ΠΎΠ΄Π°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ Π½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΊΠ°ΠΏΡΡ Π² Python.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° pytesseract ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OCR (ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²). Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pytesseract, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pip:
pip install pytesseract
ΠΠ°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΏΡΠΈ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
import pytesseract
from PIL import Image
# ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡΠΈ
image = Image.open('captcha.png')
# Π Π°ΡΠΏΠΎΠ·Π½Π°ΠΉΡΠ΅ ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
captcha_text = pytesseract.image_to_string(image)
print(captcha_text)
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Selenium
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Selenium ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΡ Ρ ΠΊΠ°ΠΏΡΠ΅ΠΉ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Selenium Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΊΠ°ΠΏΡΠΈ:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π±ΡΠ°ΡΠ·Π΅Ρ
driver = webdriver.Chrome()
# ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΊΠ°ΠΏΡΠ΅ΠΉ
driver.get('https://example.com/captcha')
# ΠΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΏΡΠΈ
captcha_image = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//img[@class="captcha-image"]'))
)
# Π Π°ΡΠΏΠΎΠ·Π½Π°ΠΉΡΠ΅ ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΏΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytesseract
captcha_text = pytesseract.image_to_string(Image.open(captcha_image.get_attribute('src')))
# ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² ΠΏΠΎΠ»Π΅ ΠΊΠ°ΠΏΡΠΈ
captcha_input = driver.find_element(By.XPATH, '//input[@id="captcha-input"]')
captcha_input.send_keys(captcha_text)
# ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΠΎΡΠΌΡ
submit_button = driver.find_element(By.XPATH, '//button[@id="submit-button"]')
submit_button.click()
# ΠΠ°ΠΊΡΠΎΠΉΡΠ΅ Π±ΡΠ°ΡΠ·Π΅Ρ
driver.quit()
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΊΠ°ΠΏΡΠ°-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΊΠ°ΠΏΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡΠ°-ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ API Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Anti-Captcha, 2captcha ΠΈ RuCaptcha. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ 2captcha API:
import requests
# ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡΠΈ Π½Π° 2captcha API
response = requests.post('http://2captcha.com/in.php', files={'file': open('captcha.png', 'rb')}, data={'key': 'your_api_key'})
# ΠΠΎΠ»ΡΡΠΈΡΠ΅ ID Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΊΠ°ΠΏΡΠΈ
task_id = response.json().get('task_id')
# ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
while True:
response = requests.get('http://2captcha.com/res.php', params={'key': 'your_api_key', 'action': 'get', 'id': task_id})
if response.json().get('status') == 1:
captcha_text = response.json().get('text')
break
time.sleep(1)
print(captcha_text)
4. ΠΠ±Ρ ΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ°ΠΏΡΠΈ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ°ΠΏΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠ±Ρ ΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ°ΠΏΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ½ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΡΠ²ΠΎΠ΄
ΠΠ±Ρ ΠΎΠ΄ ΠΊΠ°ΠΏΡΠΈ Π² Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Selenium ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΊΠ°ΠΏΡΠ°-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄ ΠΊΠ°ΠΏΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΎΠΌΠ΅ΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ Π·Π°ΠΊΠΎΠ½Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΊΠ°ΠΏΡΠ΅ΠΉ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°ΠΌΠΈ.