Задать вопрос
@oktyabr_goldige

Как мне спарсить страницу c множеством запросов на капчу и логин?

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

Тело запроса:
{
    "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"
    }
}


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

У меня совсем нет идей как я могу это реализовать. Может есть тут опытные парсинг-специалисты?)
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы