Не могу понять, как мне спарсить страницу

Задача не из простых, я хочу сделать бота, который заходит в личный кабинет wb partners и парсит оттуда данные. Как я понимаю, сначала мне нужно запрашивать у пользователя номер телефона для логина, потом код из смс, но не в этом проблема. При логине я вижу следующие запросы на сервер во владке "Network":

введите сюда описание изображения

Вкладка "Payload" Объект

{
  capthca - token: "",
    phone - number: "номер телефона, начинающийся с 79..."
}

Ответом является объект: {"result":3,"error":"need captcha","payload":{}}

То есть, браузер сначала делает запрос без капча-токена, получает ответ что нужна капча, затем вижу запрос javascript-файлов

{
  "solvePath": "/scripts/solve.wasm?7b450d09",
  "execPath": "/scripts/wasm_exec.js?5c7aa861",
  "dPath": "/scripts/d.js?7eec71a7"
}

где наверное и заложена капча, затем я вижу запросы get-task?client_id=..., причем этот клиент-айди как я понял один и тот же, тестировал при нескольких запросах. И так, в строке запроса мы передаем этот клиент-айди, а в теле запроса я вижу большую строку с непонятным мне содержимым, что-то вроде "asfiUE324unfeufb32ubuEHf..." и так 4705 символов. Ответом на этот запрос является объект с количеством ответов, тайм-штампом и хешем

{
  "timestamp": 1735329452,
  "value": "v1b8d8acb0276e72a17c057800838d6b4cbfc4af9498b5010e22bf2d17a07001",
  "threshold_hex": "07ffffffffffffffffffffffffff....(много f)",
  "match_bits": 5,
  "buffer_len": 64,
  "answers_count": 5,
  "r": 8,
  "n": 8,
  "client_id": "f62be0c0-9a37-4c2f-bd0f-6cfc51190fe8",
  "sign": "27a3cd9d68992041b1dc2943c0763716acf78acd2f6ce0b5df1b839da33a76de"
}

Далее я вижу запрос скрипта solve.wasm, в ответе ничего нет Затем вижу запрос verify-captcha, где передается массив с ответами answers: [3845, 3853, 3872, 3877, 3880] и вышестоящий json-ответ. Из ответа на verify-capthca мы получаем "wb-captcha-short-token", вызываем заново wb-captcha с тем же номером телефона и значением "wb-captcha-short-token" в поле "captcha-token", и вот теперь мы получаем ответ

{
  "result": 0,
  "payload": {
    "auth_method": "sms",
    "ttl": 60,
    "sticker": "5e430d45-23e6-4c46-96eb-0141c695e70b"
  }
}

и код приходит на номер телефона.

У меня совсем нет идей как я могу это реализовать


Ответы (0 шт):