Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

Node JS - как пройти hcaptcha у Discord

Для автоматизации процесса сбора информации нам потребовался бот Discord, боту необходимо в определенное время писать команды и читать его ответы.

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

Основная проблема - hCaptcha при первом открытии веб версии с нового IP, в нашем случае проект работает на хостинге и из инстурментов только SSH консоль ( нет возможности открыть браузер и пройти первую авторизацию).

Для решения этой задачи используем Node JS и Puppeteer (высокоуровневый API для управления браузерами на основе Chromium), выбор именно этого API обусловлен ограничениеми хостинга Node v16 и NPM v8, на других версиях есть другие варианты схожего ПО.

Структура программы:

Приложение (скрипт index.js)
-- | HTTP сервер для чтения внешних команд
-- | Браузер на основе  Puppeteer  

Состав файлов:

Файлы приложения:

Алгоритм работы приложения, файл "index.js":

1. Запуск приложения

1.1. Приложение открывает 3000 порт на адресе 127.0.0.1

1.2. Если порт занят, значит уже запущен другой экземпляр

1.3. Порт открыт - это первичный запуск. Продолжаем загрузку файлов с функциями

2. Загрузка внешних файлов с функциями "handler/index.js", файл содержит инструкцию как загрузить команды из файлов(в демо только 1 файл)

3. Запуск HTTP сервера на 3000 порту

4. Ожидание веб команд

 

Алгоритм подачи команды, файл "btncommands/web_comand.js"

1. Написать команду "type_bot" через веб запрос, вид команды  "127.0.0.1:3000?task=type_bot"

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

2.1. Если нужно вводить капчу, то браузер остается на той же странице и к странице можно обратиться через команды

  • "127.0.0.1:3000?task=pageclick&cid=x_y" - щелкнуть мышкой по координатам
  • "127.0.0.1:3000?task=pagescren" - сделать снимок экрана в локальной папке
  • "127.0.0.1:3000?task=closepage" - закрыть браузер

2.2. Через команду pageclick нужно открыть капчу, выбрать нужные элементы и нажать кнопку подтверждения.  Координаты элементов не меняются, их достаточно вычислить один раз.

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.