πŸ”“ Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠ°ΠΏΡ‡Ρƒ ЯндСкса ΠΏΡ€ΠΈ парсингС Python - простыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ совСты

Для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠ°ΠΏΡ‡ΠΈ ЯндСкса ΠΏΡ€ΠΈ парсингС с использованиСм Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

1. УстановитС ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

    
        !pip install requests
        !pip install pytesseract
        !pip install Pillow
        import requests
        from PIL import Image
        import pytesseract
    
    

2. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ сохранитС Π΅Π³ΠΎ:

    
        captcha_url = "ссылка_Π½Π°_ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅_ΠΊΠ°ΠΏΡ‡ΠΈ"
        response = requests.get(captcha_url, stream=True)
        with open('captcha.png', 'wb') as file:
            file.write(response.content)
    
    

3. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pillow ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ оптичСскоС распознаваниС символов (OCR) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pytesseract:

    
        image = Image.open('captcha.png')
        captcha_text = pytesseract.image_to_string(image)
        print(captcha_text)
    
    

4. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ тСкст ΠΊΠ°ΠΏΡ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запроса Π½Π° сСрвСр ЯндСкса для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠ°ΠΏΡ‡Ρƒ ЯндСкса ΠΏΡ€ΠΈ парсингС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python?

ΠšΠ°ΠΏΡ‡Π° - это ΠΌΠ΅Ρ€Π° бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ЯндСкс ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Π±-сайты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, являСтся Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±ΠΎΡ‚ΠΎΠΌ. Однако, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ автоматичСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΏΡ€ΠΈ парсингС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ЯндСкса. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠ°ΠΏΡ‡ΠΈ ЯндСкса с использованиСм Python.

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pytesseract ΠΈ Pillow

Pytesseract - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° оптичСского распознавания символов (OCR) для Python, которая позволяСт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ тСкст ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Pillow - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ВмСстС ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для распознавания ΠΊΠ°ΠΏΡ‡ΠΈ ЯндСкса.


import pytesseract
from PIL import Image

# Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ сохранитС Π΅Π³ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ png

# ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pillow
image = Image.open('captcha.png')

# ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ оптичСскоС распознаваниС символов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pytesseract
captcha_text = pytesseract.image_to_string(image)

# РаспСчатайтС распознанный тСкст ΠΊΠ°ΠΏΡ‡ΠΈ
print('Распознанный тСкст ΠΊΠ°ΠΏΡ‡ΠΈ:', captcha_text)

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ распознанный тСкст ΠΊΠ°ΠΏΡ‡ΠΈ для заполнСния поля ΠΊΠ°ΠΏΡ‡ΠΈ Π½Π° страницС ЯндСкса ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос.

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Selenium

Selenium - это популярная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. Она позволяСт Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ JavaScript, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ЯндСкс Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅
  • Найти ΠΏΠΎΠ»Π΅ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ ввСсти тСкст ΠΊΠ°ΠΏΡ‡ΠΈ
  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос

from selenium import webdriver

# Запуск Π²Π΅Π±-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°
driver = webdriver.Chrome()

# ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу ЯндСкса
driver.get('https://www.yandex.ru')

# Найти ΠΏΠΎΠ»Π΅ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ ввСсти тСкст ΠΊΠ°ΠΏΡ‡ΠΈ
captcha_input = driver.find_element_by_id('captcha-input')
captcha_input.send_keys(captcha_text)

# ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос
submit_button = driver.find_element_by_id('submit-button')
submit_button.click()

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Selenium позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст ΠΊΠ°ΠΏΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΅Π΅ ΠΏΡ€ΠΈ парсингС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ЯндСкса.

3. ИспользованиС API Π±Π°Π½Ρ‚ΠΈΠΊΠ°

Π‘Π°Π½Ρ‚ΠΈΠΊ - это сСрвис круглосуточного распознавания ΠΊΠ°ΠΏΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для автоматичСского ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠ°ΠΏΡ‡ΠΈ ЯндСкса. Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ API, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ распознанный тСкст Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅.


import requests

# Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ
captcha_image = open('captcha.png', 'rb')

# ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ Π½Π° API Π±Π°Π½Ρ‚ΠΈΠΊΠ°
response = requests.post('https://bantic.ru/captcha.php', files={'file': captcha_image})

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ распознанный тСкст ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚Π°
captcha_text = response.json()['text']

# РаспСчатайтС распознанный тСкст ΠΊΠ°ΠΏΡ‡ΠΈ
print('Распознанный тСкст ΠΊΠ°ΠΏΡ‡ΠΈ:', captcha_text)

Π­Ρ‚ΠΎΡ‚ способ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСгистрации Π½Π° сайтС Π‘Π°Π½Ρ‚ΠΈΠΊΠ° ΠΈ получСния API ΠΊΠ»ΡŽΡ‡Π°.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΊΠ°ΠΏΡ‡ΠΈ ЯндСкса ΠΏΡ€ΠΈ парсингС с использованиСм Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pytesseract ΠΈ Pillow для оптичСского распознавания символов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Selenium для автоматичСского управлСния Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ API сСрвиса Π‘Π°Π½Ρ‚ΠΈΠΊ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ изобраТСния ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈ получСния распознанного тСкста. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ подходящий способ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ парсингу Π½Π° Python | ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Π±Π΅Π· обнаруТСния | ΠŸΠ°Ρ€ΡΠΈΠ½Π³ CloudFlare | Selenium, CloudFlare

Как Ρ€Π°Π·Π³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΏΡ‡Ρƒ автоматичСски ΠΏΡ€ΠΈ парсингС

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ парсингу Π½Π° Python #10 | Ошибки ΠΏΡ€ΠΈ парсингС | ΠŸΠ°Ρ€ΡΠΈΠ½Π³ сайта

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ядро Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с описаниСм шагов ΠΈ смайликами βš™οΈ

Как обозначаСтся дискриминант Π² Python?

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ OpenCV2 Python: подробная инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”“ Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠ°ΠΏΡ‡Ρƒ ЯндСкса ΠΏΡ€ΠΈ парсингС Python - простыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ совСты

Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ - список map int input split Π² Python?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΈΡ‚ΠΎΠ½ Π½Π΅ устанавливаСтся Π½Π° Виндовс 10?

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ остаток Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ