SA:MP Python Автоввод капчи для тренера капчи (https://kiznold.github.io/xsoft/)

afafaf124124124124

Новичок
Автор темы
12
1
Версия SA-MP
  1. Другая

Скрипт, на Python, позволяющий автоматически вводить капчу для тренера капчи (https://kiznold.github.io/xsoft/).​

Для установки нужны зависимости: Python 3.11.0,
pip install selenium pillow pyautogui easyocr torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
, Видеокарта NVIDIA или процессор от AMD (замени cu118 на твою версию CUDA или убери --index-url для CPU), https://chromedriver.chromium.org/downloads хромдрайвер.
Настройка:
В скрипте есть множество различных задержек в п​
  1. time.sleep(2) после открытия страницы
    — Ждёт, пока полностью загрузится сайт и элементы станут интерактивными.
  2. time.sleep(1.5) после нажатия клавиши N
    — Ожидает появления капчи на экране, чтобы она отрисовалась.
  3. time.sleep(0.12) между нажатиями клавиш при вводе капчи
    — Задержка для имитации естественного ввода, чтобы сайт не воспринимал ввод как слишком быстрый или ботский.
  4. time.sleep(2) перед закрытием браузера
    — Дает время на обработку отправки формы и получение результата.
Использование:​
  1. Установка зависимостей.​
  2. Настройка под вас (Работа через GPU/CPU, задержки по времени, CUDA версия).​
  3. Запуск через CMD,Vscode.​
Python:
import time
import os
import logging
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from PIL import Image
import pyautogui
import easyocr

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s] %(message)s',
    handlers=[
        logging.FileHandler("captcha_auto.log", encoding='utf-8'),
        logging.StreamHandler()
    ]
)

def main():
    save_dir = r"C:\Users\0\Desktop\captcha_folder"
    os.makedirs(save_dir, exist_ok=True)
    logging.info(f"Папка для сохранения: {save_dir}")

    driver = webdriver.Chrome()
    driver.set_window_size(1920, 1080)
    driver.get("https://kiznold.github.io/xsoft/")
    time.sleep(2)

    fast_x, fast_y = 1772, 235
    logging.info(f"Кликаем по кнопке Fast по координатам ({fast_x}, {fast_y})")
    pyautogui.click(fast_x, fast_y)
    time.sleep(1)

    driver.maximize_window()
    driver.switch_to.window(driver.current_window_handle)
    body = driver.find_element("tag name", "body")
    logging.info("Первый вызов капчи — отправляем 'n'")
    body.send_keys('n')
    time.sleep(2)

    input_x, input_y = 914, 672

 
    logging.info("Инициализируем easyocr с использованием GPU")
    reader = easyocr.Reader(['en'], gpu=True)

    try:
        while True:
            screenshot_path = os.path.join(save_dir, "screenshot.png")
            logging.info(f"Делаем скриншот и сохраняем в {screenshot_path}")
            driver.save_screenshot(screenshot_path)

            CAPTCHA_BOX = (735, 315, 1185, 415)
            image = Image.open(screenshot_path)
            captcha_img = image.crop(CAPTCHA_BOX)

            captcha_path = os.path.join(save_dir, "captcha.png")
            captcha_img.save(captcha_path)
            logging.info(f"Капча сохранена в {captcha_path}")

           
            result = reader.readtext(captcha_path)
            captcha_text = ''.join([res[1] for res in result])
            logging.info(f"Распознанный текст капчи: {captcha_text}")

            captcha_code = ''.join(filter(str.isdigit, captcha_text))[:5]
            logging.info(f"Финальный код для ввода: {captcha_code}")

            pyautogui.click(input_x, input_y)
            time.sleep(0.3)

            for char in captcha_code:
                pyautogui.press(char)
                time.sleep(0.05)

            pyautogui.press('enter')
            logging.info("Капча введена и отправлена")

            time.sleep(3)

    except KeyboardInterrupt:
        logging.info("Работа остановлена пользователем")
    except Exception as e:
        logging.error(f"Ошибка в цикле: {e}", exc_info=True)
    finally:
        driver.quit()
        logging.info("Браузер закрыт")

if __name__ == "__main__":
    main()

Автором являюсь я. При распространении или использовании не локально указывать автора.
 

Вложения

  • captcha solver.py
    3 KB · Просмотры: 15
Последнее редактирование:

afafaf124124124124

Новичок
Автор темы
12
1
Конфиг на ввод за 1.15сек. + авто миссы

python ebanuy:
import time
import os
import logging
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from PIL import Image
import pyautogui
import easyocr

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s] %(message)s',
    handlers=[
        logging.FileHandler("captcha_auto.log", encoding='utf-8'),
        logging.StreamHandler()
    ]
)

def main():
    save_dir = r"C:\Users\0\Desktop\captcha_folder"
    os.makedirs(save_dir, exist_ok=True)
    logging.info(f"Папка для сохранения: {save_dir}")

    driver = webdriver.Chrome()
    driver.set_window_size(1920, 1080)
    driver.get("https://kiznold.github.io/xsoft/")
    time.sleep(1)

    fast_x, fast_y = 1772, 235
    logging.info(f"Кликаем по кнопке Fast по координатам ({fast_x}, {fast_y})")
    pyautogui.click(fast_x, fast_y)
    time.sleep(0.5)

    driver.maximize_window()
    driver.switch_to.window(driver.current_window_handle)
    body = driver.find_element("tag name", "body")
    logging.info("Первый вызов капчи — отправляем 'n'")
    body.send_keys('n')
    time.sleep(0.5)

    input_x, input_y = 914, 672

  
    logging.info("Инициализируем easyocr с использованием GPU")
    reader = easyocr.Reader(['en'], gpu=True) 

    try:
        while True:
            screenshot_path = os.path.join(save_dir, "screenshot.png")
            logging.info(f"Делаем скриншот и сохраняем в {screenshot_path}")
            driver.save_screenshot(screenshot_path)

            CAPTCHA_BOX = (735, 315, 1185, 415)
            image = Image.open(screenshot_path)
            captcha_img = image.crop(CAPTCHA_BOX)

            captcha_path = os.path.join(save_dir, "captcha.png")
            captcha_img.save(captcha_path)
            logging.info(f"Капча сохранена в {captcha_path}")

            
            result = reader.readtext(captcha_path)
            captcha_text = ''.join([res[1] for res in result])
            logging.info(f"Распознанный текст капчи: {captcha_text}")

            captcha_code = ''.join(filter(str.isdigit, captcha_text))[:5]
            logging.info(f"Финальный код для ввода: {captcha_code}")

            pyautogui.click(input_x, input_y)
            time.sleep(0.15)

            for char in captcha_code:
                pyautogui.press(char)
                time.sleep(0.02) 

            pyautogui.press('enter')
            logging.info("Капча введена и отправлена")

            time.sleep(0.1) 

    except KeyboardInterrupt:
        logging.info("Работа остановлена пользователем")
    except Exception as e:
        logging.error(f"Ошибка в цикле: {e}", exc_info=True)
    finally:
        driver.quit()
        logging.info("Браузер закрыт")

if __name__ == "__main__":
    main()

Change log 0.0.1:
+ keyspoof