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: Готовые кубики с кликами, вводом текста, парсингом, работай с вкладками, загрузкой и скачиванием файлов и так далее.
В будущем к-во действий планируется расширить
5) Закрываем браузер и соединение.
Дабы экономить ресурсы вашего устройства после отработки скрипта или же при выходе по GoodEnd или BadEnd рекомендую выполнять закрытие браузера и закрытие сессии, что бы на фоне не висела лишняя нагрузка
ВАЖНО!!! Данное решение не работает с внутренним браузером ZennoPoster (но при необходимости можно работать одновременно и со встроенным браузером и с антидетект браузером), действия выполняемые кубиками (экшенами) такие как: клик, ввод текста, работа с вкладками, переход по ссылкам, парсинг и т.д. не будут работать в антидетект браузере (см. рис. 1)
Но это не запрещает вам использовать такие кубики как: обработка текста, работа со списками и таблицами, логика, http запросы, работа с директориями, работа с базами данных и так далее