Как скачать картинку с сайта?

285
26 июля 2019, 20:50

Я пытаюсь сделать парсер на основе "AngleSharp".
Я использую следующий код для скачивания:

var itemsAttr = document.QuerySelectorAll("img[id='print_user_photo']"); 
string foto_url = itemsAttr[0].GetAttribute("src");
string path = pathFolderIMG + id_source + ".jpg";
WebClient webClient = new WebClient(); 
webClient.DownloadFile(foto_url, path);

Для страниц "type_1" - ссылка - код работает.
Для страниц "type_2" - ссылка - код не работает.

Для "type_2" картинка находится по ссылке - ссылка

Как скачать фотографии для страниц "type_2"?

Answer 1

Насколько я вижу, эти картинки имеют два адреса: первоначально грузится картинка в плохом качестве, а потом лениво грузится крупная картинка.

Ну тогда так:

var img = document.QuerySelectorAll("img#print_user_photo").First();
//img.Attributes.Dump();
string foto_url = img.GetAttribute("data-pagespeed-lazy-src");

Но сайт отдаёт 404 в случае если реферрер пустой - видимо минимальная защита от скачивания. Делайте так:

WebClient webClient = new WebClient();
webClient.Headers.Add("Referer",@"https://rabota.by/resume/view/342239/");
webClient.DownloadFile(foto_url, path);
READ ALSO
Как пропускать пустые значения в INI файле?

Как пропускать пустые значения в INI файле?

Подскажите как пропускать чтение пустых параметров из INI файла, чтобы при загрузке формы не выдавало ошибку - нет логического значения

163
Преобразование сложной строки в массив

Преобразование сложной строки в массив

Есть строка вида[{"value":"imagine dragons","url":"\/artist\/547-imagine-dragons\/"}] хочу перевести его в массив для дальнейшей обработки, например, строку перевести в массив...

155