April 13

WraithCore.exe

Что такое WraithCore.exe?

WraithCore.exe – это приложение, созданное для автоматизации "антидетект браузеров" с помощью программы ZennoPoster(взаимодействие происходит по принципу клиент-сервер, где клиент это Zennoposer, который отправляет команду и ждет ответ, а WraithCore.exe - сервер, который ждет команду, выполняет ее и отправляет ответ обратно клиенту, то есть в ZennoPoster)

Что мне нужно чтобы начать работу?

1) Убедиться в том, что оно вам действительно надо...

Данное решение рассчитано для людей имеющих базовые представление об автоматизации и о том, что такое ZennoPoster и как с ним работать. WraithCore.exe не является панацеей для всех ваших задач и проблем, и это не дает вам гарантию того, что вы сразу же побежите регистрировать гугл аккаунты тысячами или ваши аккаунты никогда не будут блокировать.

Всё взаимодействие с браузером происходит исключительно с помощью C# кода, хоть практически все нужные вам действия уже прописаны в тестовом шаблоне, а так же имеются визуальные генераторы (generator.html) вам все равно придется чему-то УЧИТЬСЯ, как минимум вам нужно понимать отличие string от int (строки от числа), как работать с XPath либо CSS, понимать что такое API и уметь разбираться в документации (В отличиии от InfiniteServer в WraithCore был удален метод запуска браузера из коробки).

И да, мы не заявляем, что наше решение является САМЫМ лучшим на рынке, аналогов которому нет и так далее... У нас тоже есть баги, есть к чему придраться, есть много моментов которые лично меня как разработчика не устраивают, любую критику, жалобы и предложения с удовольствием примем и постараемся что-то улучшить или исправить. Так же если вам не хватает какой либо функции, или вы считаете что она необходима, так же с радостью выслушаем ваши предложения.

Если вы готовы принять написанную информацию выше, то переходите к пункту номер 2

2) Оплатить или активировать бесплатную версию

Цена WraithCore.exe 30$/месяц, так же вы можете использовать бесплатную(trial) версию на 7 дней (без ограничения функционала)

Лицензия привязывается к вашему zenno_id личного кабинета, поэтому ограничения по к-ву устройств, привяски по IP и так далее нет

Для выписки лицензии обращаться: Midaw007

ОБЯЗАТЕЛЬНО СВЕРЯЙТЕ КОНТАКТЫ ПРИ ОПЛАТЕ

Для активации лицензии нужен ваш zenno id, что бы его получить есть 2 варианта:

1. Получить через ProjectMaker
Для этого в ProjectMaker нужно в окне переменных найти вкладку "Окружение", в этом окне взять значение переменной "Environment.CurrentUser" это и есть ваш zenno id

2 .Получить через личный кабинет ZennoLab

Личный кабинет => Клик по иконке профиля => Настройки профиля => Скопировать ID

3) Скачайте архив с проектом и разархивируйте

Архив можно скачать в нашем телеграмм канале СКАЧАТЬ

В архиве вы найдете несколько директорий и файлов:

  • Директория InfiniteSnippets – C# снипеты, нужны для быстрой вставки готового кода в проекты (смотри фото ниже)
  • Директория locales - в ней хранятся файлы локализации (en, ru, zh), так же в них хранятся:
    1) Библиотека InfiniteClient.dll (именно она отправляет команды из ZennoPoster в WraithCore.exe)
    2) InfiniteClient.xml, это документация для редактора кода (в нашем случае для ZennoPoster) он показыват нам подсказки и описание кода (смотри фото ниже)

  • Директория WraithCore - в ней хранятся:
    1) Директория _internal - в ней описана работа WraithCore.exe
    2) WraithCore.exe - сам исполняемый файл, нашей програмы
  • Файл WraithCoreTEST.zp - тестовый шаблон, с примерами кода

4) Добавить необходимые компоненты в рабочую папку ZennoPoster

1. Откройте папку в которую вы установили ZennoPoster

2. Перейдите в директорию ExternalAssemblies

3. Перейдите в директорию ExternalAssemblies

После перехода в директорию ExternalAssemblies, переместите в нее 2 файла (InfiniteClient.dll и InfiniteClient.xml)

5) Почти все готово!!!

Если вы все сделали правильно, то теперь вам нужно открыть тестовый шаблон WraithCoreTEST.zp, и выполнить первый кубик(экшен), в котором будет создан экземпляр нашего клиента, который в будущем подключится к WraithCore

Если у вас не посыпались ошибки, то настройка выполнена правильно и вы можете начинать писать свои проекты

Далее для написания будущих шаблонов дабы не морочиться с добавлением ссылок из GAC и не прописывать using и общий код, рекомендую просто копировать проект WraithCoreTEST.zp, переименовать его, удалить лишние кубики и продолжить работу

Ниже в этой статье будет информация для тех, кто немного хочет вникнуть в то, как пользоваться данным решением, к прочтению рекомендовано, но не обязательно

1) Запускаем WraithCore.exe (двойным кликом мыши по исполняемому файлу)

2) Создаем экземпляр класса Client и сохраняем его "в память" зенопостера. Это делается для того, что бы мы могли обращаться к этому объекту в других кубиках.

Далее в каждом последующем кубике для работы с нашим объектом его нужно "доставать из памяти" с помощью строки:

InfiniteClient.Client client = project.Context["client"] as InfiniteClient.Client;

3) Создаем новую сессию.

В отличиие от InfiniteServer(более старого решения, в котором мы выполняли OpenConnect (), то есть открывали сессию, в данном решении мы используем метод CreateSession(), который откроет под в фоновом режиме легковесную сессию, а не запустит еще один тяжелый exe файл).

4) Запуск браузера.


Запуск браузера выполняется с помощью post/get запросов из документации нужного вам браузера, в тестовом шаблоне уже встроены примеры запуска неекоторых браузеров (ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ЛЮБОЙ ДРУГОЙ БРАУЗЕР):

Как найти ID нужного антика можно посмотреть ТУТ

5) Подключение к браузеру

После запуска браузера (с помощью post или get запроса) вам должен прийти ответ, обычно он содержит строку для подключения по CDP
Пример от AdsPower:

{ "code":0,"msg":"success", "data":{"ws":{"puppeteer":"ws://127.0.0.1:50876/devtools/browser/cd0f3fea-1176-41ef-8dbc-a6e1a99a1a78","selenium":"127.0.0.1:50876"},"debug_port":"50876","webdriver":"C:\\Users\\user\\AppData\\Roaming\\adspower_global\\cwd_global\\chrome_144\\chromedriver.exe"} }

В ответе мы видим ws и debug_port

Для подключения используемConnectToBrowser():
1) Вариант первый:

client.ConnectToBrowser("ws://localhost:9222/devtools/page/DAB7FB6187B554E10B0BD18821265734"); 2) Второй вариант
client.ConnectToBrowser("http://localhost:9222");

6) Активируем вкладку для работы.

Было сделано много попыток автоматической активации вкладки, но по различным причинам я отказался от данной реализации и переложил это действие на пользователя, так как из-за скорости загрузки, вида браузера, открытых до этого вкладок и других причин, могут быть непредсказуемые результаты, поэтому я составил код, который просто закрывает все вкадки, кромее одной, а в конце активирует ее

7) Пишем свой проект дальше.

На этом этапе, стандартная настройка и запуск браузера выполнены, далее вы просто можете взять уже написанные мною кубики и заменить в них данные на свои или же написать свой код

БЛОК 1: Дополнительные настройки.

БЛОК 2: Готовые кубики с кликами, вводом текста, парсингом, работай с вкладками, загрузкой и скачиванием файлов и так далее.

В будущем к-во действий планируется расширить

Так же вы можете использовать generator.html

5) Закрываем браузер и соединение.

Дабы экономить ресурсы вашего устройства после отработки скрипта или же при выходе по GoodEnd или BadEnd рекомендую выполнять закрытие браузера и закрытие сессии, что бы на фоне не висела лишняя нагрузка

ВАЖНО!!! Данное решение не работает с внутренним браузером ZennoPoster (но при необходимости можно работать одновременно и со встроенным браузером и с антидетект браузером), действия выполняемые кубиками (экшенами) такие как: клик, ввод текста, работа с вкладками, переход по ссылкам, парсинг и т.д. не будут работать в антидетект браузере (см. рис. 1)

рис. 1

Но это не запрещает вам использовать такие кубики как: обработка текста, работа со списками и таблицами, логика, http запросы, работа с директориями, работа с базами данных и так далее