Здравствуйте! Недавно столкнулся с проблемой скачивания картинки с сайта litres.ru.
Есть некоторый url: .../pages/read_book_online/?file=15177364&page=0&rt=w640&ft=gif
Интерпретатор браузера воспринимает его как картинку и я хочу ее скачать, но возникла проблема, прямой ссылки на картинку (Gif) не существует. Т.е при попытке скачать картинку через HttpRequest (через Stream, HttpResponse и тп) или webclient.DownloadFile(url, "filename.gif") скачивается сама страница (ContentType = text/html). В браузере страница выглядит так:
Вопрос: Как можно скачать картинку по типу "лкм -> save as image"? Слышал про псевдобраузеры(поправьте если не так называю), которые грузят прямо api, симулируя работу настоящего браузера, и могут просчитывать все. Есть ли тогда что-то подобное в c#? Или есть другое решение? В общем случае мне нужно скачать уйму подобных страниц. Спасибо!
P.S Если не сложно, распишите поподробнее способ, думаю многим будет интересно:)
UPD: желательно без браузера из WindowsForms Запрос на получение картинки:
Решил проблему. Для получения Content-Type: image/gif, image/gif вместо text/html нужно ОБЯЗАТЕЛЬНО указать в Cookie SID (вот такая на litres.ru аунтификация:) ). Скачать книгу в Jpeg можно так:
for (int i = 0; i < count; i++)
{
var bytes = web.DownloadData(name.Replace("page=", $"page={i}"));
System.Drawing.Image img = System.Drawing.Image.FromStream(new MemoryStream(bytes));
img.Save($"{path}/page{i}.jpg", ImageFormat.Jpeg);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброй ночи, подскажите как использовать ProgressBar при загрузке множества файловУ меня всегда разный список ссылок и программа узнает об этом...
Как узнать какая версия nuget установлена? Если просто ввести:
Зачем в Visual C# (использую Visual Studio 2017) у элементов управления свойство margin если вне зависимости от его значения можно свободно перемещать элементы...
Есть screensaver, и при запуске он открывает две копии приложения на количество мониторовМне необходимо чтоб некоторые функции на одном из мониторов...