WebAPI

NeoWare способен решать вебкапчи используя Python и другие языки, все благодаря WebAPI

В чем смысл? В клиенте уже есть вариант прохождения капч, но там невозможно что либо изменить/дополнить

Используя WebAPI, можно сделать почти автоматическое решение вебкапч, все зависит от ваших навыков

Солвер, Python часть

from http.server import BaseHTTPRequestHandler, HTTPServer
import logging
from urllib.parse import urlparse, parse_qs
from seleniumbase import Driver
import time
import threading

class S(BaseHTTPRequestHandler):

    def _set_response(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()

    def do_GET(self):
        if "work.php" in str(self.path):
            parsed_url = urlparse(self.path)
            query_params = parse_qs(parsed_url.query)
            
            url = query_params.get('url', [None])[0]
            proxy = query_params.get('proxy', [None])[0]
            proxyType = query_params.get('type', [None])[0]
            bot = query_params.get('botnickname', [None])[0]
            print(url)
            print(proxy)
            print(proxyType)
            print(bot)

            threading.Thread(target=self.start_driver, args=(url, proxyType, proxy)).start()

            self._set_response()
            self.wfile.write(f"GET request for {self.path}, client parameter:".encode('utf-8'))

    def start_driver(self, url, proxy_type, proxy):
        driver = Driver(uc=True, proxy=f"{proxy_type}://{proxy}")
        driver.get(url)

    def do_POST(self):
        self._set_response()
        self.wfile.write(f"POST request for {self.path}".encode('utf-8'))

def run(server_class=HTTPServer, handler_class=S, port=80):
    logging.basicConfig(level=logging.INFO)
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    logging.info('Starting httpd...\n')
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        pass
    httpd.server_close()
    logging.info('Stopping httpd...\n')

if __name__ == '__main__':
    run(port=8080)

В этом примере кода локальный http сервер принимает GET запросы от клиента с параметрами

Сам запрос выглядит так: http://127.0.0.1:8080/work.php?client=neoware&url=https://captcha.reallyworld.me/authorize/&proxy=0.0.0.0&type=socks5&botnickname=NeoWare_24335

url - Ссылка на капчу

proxy - Прокси бота

type - Тип прокси от бота, socks4/socks5/http

botnickname - Ник бота

Вся дичь с веб страницей происходит в def start_driver(), для каждой страницы там отдельный поток

Клиент

Заходим в кликгуи, находим модуль WebSolver и в нем нужно выбрать "SolverMode: WebAPI" И ТОЛЬКО ПОТОМ ВКЛЮЧАЕМ МОДУЛЬ! Все остальные настройки можно проводить после. Из важного, WebHost - адрес сайта, если он локальный не меняем, либо ставим 127.0.0.1:8080. Если нужно изменить порт, то меняйте его и в WebHost, и в Python солвере. Если включить режим без прокси, то на месте proxy в параметрах запроса будет 0.0.0.0

Возможные баги:

Ошибка с библиотеками - Ставим все, что просит

Не грузит страницу - При использовании socks4 и других медленных прокси мы автоматически идем НАХУЙ

Не открывается страница - Проверяем, солвер должен написать в консоль "Starting httpd..." В клиенте должен быть выбран WebAPI в SolverMode у модуля WebSolver, и сам модуль должен быть включен!

При нахождении других багов пишите в тикеты :)

Параметры по умолчанию