- 12
- 1
- Версия SA-MP
-
- Другая
Скрипт, на 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
Настройка:
В скрипте есть множество различных задержек в п
В скрипте есть множество различных задержек в п
- time.sleep(2) после открытия страницы
— Ждёт, пока полностью загрузится сайт и элементы станут интерактивными. - time.sleep(1.5) после нажатия клавиши N
— Ожидает появления капчи на экране, чтобы она отрисовалась. - time.sleep(0.12) между нажатиями клавиш при вводе капчи
— Задержка для имитации естественного ввода, чтобы сайт не воспринимал ввод как слишком быстрый или ботский. - time.sleep(2) перед закрытием браузера
— Дает время на обработку отправки формы и получение результата.
Использование:
- Установка зависимостей.
- Настройка под вас (Работа через GPU/CPU, задержки по времени, CUDA версия).
- Запуск через 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()
Автором являюсь я. При распространении или использовании не локально указывать автора.
Вложения
Последнее редактирование: