Скачивание файла из blob ссылки

Soulfox

Client
Регистрация
25.03.2018
Сообщения
40
Благодарностей
7
Баллы
8
Доброго времени суток. Третий день не могу победить данную проблему. Есть сайт озвучки, при проигрывании озвучки, в хроме через инструменты разработчика есть ссылка вида "blob:https://studio.wellsaidlabs.com/772fd3b8-fd60-4558-a2d0-6823e442b7b0". Так вот при переходе на нее из браузера открывается браузерный плеер, откуда собственно можно и скачать mp3. Но в Зеннопостере при переходе по этой ссылке не происходит ничего. пробовал сохранить как файл GET запросом - так же нет результата... Видел несколько подобных тем на форуме, но решения не нашел. Может сталкивался кто с таким.. По логике как и в обычном хроме при переходе по ссылке в Проджект Мейкере должна быть возможность скачки файла, но ее нет((( В Зеннопостере использую браузер Chromium Beta, так как в других вообще в трафике не отслеживаются ссылки blob. Буду раз советам.
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 237
Благодарностей
573
Баллы
113
Способ загрузить защищенный blob есть. Но он, к сожалению, не бесплатный.
 

Soulfox

Client
Регистрация
25.03.2018
Сообщения
40
Благодарностей
7
Баллы
8

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 237
Благодарностей
573
Баллы
113

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 447
Баллы
113
Тоже понадобилось сохранить изображение, а решения на форуме не нашел, покумекал, накалякал, получилось, делюсь с вами)

1. включаем перехват трафика
C#:
instance.UseTrafficMonitoring = true;
далее в браузере переходим по ссылке где загружается капча



2. сохраняем изображение

113313

C#:
long unixTime = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds;
string path = Path.Combine(project.Directory + @"\arkoselabs\", unixTime + ".png");

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
    if (t.Url.Contains(@"blob:"))
    {
        File.WriteAllBytes(path, t.ResponseBody);
        return "yes";
    }
}
throw new Exception("Не удалось найти blob в трафике!");
 
  • Спасибо
Реакции: clocky и Ysocnet

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 237
Благодарностей
573
Баллы
113
Тоже понадобилось сохранить изображение, а решения на форуме не нашел, покумекал, накалякал, получилось, делюсь с вами)

1. включаем перехват трафика
C#:
instance.UseTrafficMonitoring = true;
далее в браузере переходим по ссылке где загружается капча



2. сохраняем изображение

Посмотреть вложение 113313

C#:
long unixTime = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds;
string path = Path.Combine(project.Directory + @"\arkoselabs\", unixTime + ".png");

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
    if (t.Url.Contains(@"blob:"))
    {
        File.WriteAllBytes(path, t.ResponseBody);
        return "yes";
    }
}
throw new Exception("Не удалось найти blob в трафике!");
А на хромиуме у вас тоже работает?
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 447
Баллы
113

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 237
Благодарностей
573
Баллы
113
да, на нем и тестировал
У меня такой подход не на всех сайтах с фанкапчей срабатывает с хромиумом.
Ну и опять же, блобов на странице может быть несколько. Возможно, для фанкапчи такой вариант подойдет, но:
1. В случае, если скорость прокси будет низкой, то у этого сниппета будет дропаться ошибка (или в файл запишется пустота)
2. Если на странице подгружается несколько blob'ов, то загрузится первый из них. Существует альтернативное решение для загрузки конкретного блоба. Но оно посложнее.
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 447
Баллы
113
1. В случае, если скорость прокси будет низкой, то у этого сниппета будет дропаться ошибка (или в файл запишется пустота)
2. Если на странице подгружается несколько blob'ов, то загрузится первый из них. Существует альтернативное решение для загрузки конкретного блоба. Но оно посложнее.
это все мелочи, обработать напильником и будет норм. а по поводу платного решения, пусть будет, меня пока это устраивает, а когда прижмет то буду думать что то другое, не вижу проблемы)
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
@samsonnn , твоя нейронка сможет такое решать (может в будущем)?
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 447
Баллы
113
  • Спасибо
Реакции: volody00

GoogleMo

Client
Регистрация
13.04.2014
Сообщения
227
Благодарностей
8
Баллы
18
Тоже понадобилось сохранить изображение, а решения на форуме не нашел, покумекал, накалякал, получилось, делюсь с вами)

1. включаем перехват трафика
C#:
instance.UseTrafficMonitoring = true;
далее в браузере переходим по ссылке где загружается капча



2. сохраняем изображение

Посмотреть вложение 113313

C#:
long unixTime = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds;
string path = Path.Combine(project.Directory + @"\arkoselabs\", unixTime + ".png");

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
    if (t.Url.Contains(@"blob:"))
    {
        File.WriteAllBytes(path, t.ResponseBody);
        return "yes";
    }
}
throw new Exception("Не удалось найти blob в трафике!");
Подскажите, а можно как-то стриггерить, чтобы адрес в трафике появился? Дело в том, что я обработчик картинок использую на сайте и в трафике читается только картинка Загружаемая, а не результат обработки.
 

sanbi4

Client
Регистрация
26.08.2019
Сообщения
4
Благодарностей
1
Баллы
3
Тоже понадобилось сохранить изображение, а решения на форуме не нашел, покумекал, накалякал, получилось, делюсь с вами)

1. включаем перехват трафика
C#:
instance.UseTrafficMonitoring = true;
далее в браузере переходим по ссылке где загружается капча



2. сохраняем изображение

Посмотреть вложение 113313

C#:
long unixTime = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds;
string path = Path.Combine(project.Directory + @"\arkoselabs\", unixTime + ".png");

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
    if (t.Url.Contains(@"blob:"))
    {
        File.WriteAllBytes(path, t.ResponseBody);
        return "yes";
    }
}
throw new Exception("Не удалось найти blob в трафике!");
на хромиуме работает, а на хроме нет. что тут нужно поправить?
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)