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

Как из https://m.vk.com/captcha.php?sid=183721452994&dif=1 взять капчу в виде byte[]?

Как получить капчу из этого url?

я пробовал так:

var response = await client.GetAsync(captchaUrl);
 byte[] imageBytes = await response.Content.ReadAsByteArrayAsync();


и там даже есть какие то байты, но это не изображение капчи.
  • Вопрос задан
  • 33 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@rPman
Открыть в браузере и сделать скриншот,.. капча введена и создана что бы защититься от автоматизации, поэтому без браузера скорее всего не обойтись. даже если у тебя получится, через неделю-месяц разработчики переделают алгоритм защиты и твое решение сломается.
Ответ написан
Комментировать
BasiC2k
@BasiC2k
.NET developer (open to job offers)
from Chatgpt

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string url = "https://m.vk.com/captcha.php?sid=183721452994&dif=1";

        try
        {
            byte[] captchaBytes = await DownloadCaptchaAsync(url);
            Console.WriteLine($"Размер капчи в байтах: {captchaBytes.Length}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Ошибка: {ex.Message}");
        }
    }

    static async Task<byte[]> DownloadCaptchaAsync(string url)
    {
        using (HttpClient client = new HttpClient())
        {
            HttpResponseMessage response = await client.GetAsync(url);
            response.EnsureSuccessStatusCode(); // Выбрасывает исключение, если статус код не 2xx
            return await response.Content.ReadAsByteArrayAsync();
        }
    }
}


Объяснение кода:
HttpClient: Используется для выполнения HTTP-запросов.
GetAsync: Отправляет GET-запрос по указанному URL.
EnsureSuccessStatusCode: Проверяет, успешен ли ответ сервера. Если нет, выбрасывается исключение.
ReadAsByteArrayAsync: Считывает содержимое ответа как массив байтов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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