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, и сам модуль должен быть включен!
При нахождении других багов пишите в тикеты :)
Параметры по умолчанию
