С# Скачать фото с xenforo сохранить с другим именем

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
Здравствуйте друзья
Подскажите пожалуйста кто знает фото с форумов xenforo в браузере открываеться а при скачивание ЗП (с# и кубиками) скачивает ca55ca0c7329476b82f49de3033b0e9b-png.18961 - а в исходнике весь html код страницы.

1.Как скачать читабельный формат картинки?

2.Как скачать фото сохранив сразу с другим именем, или только после скачивания переименование путем: File.Move ?

Заранее благодарен.
HTML:
//-----------
var path = project.Directory + @"\Files";
var file = ZennoPoster.HttpGet
(
    "[URL]http://infosklad.org/attachments/ca55ca0c7329476b82f49de3033b0e9b-png.18961[/URL]",
    string.Empty,
    "",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File,
    30000,
    string.Empty,
    project.Profile.UserAgent,
    true,
    5,
    null,
    path
);
//-----------
[.HTML]
 
Последнее редактирование:

shved2

Client
Регистрация
16.07.2015
Сообщения
146
Благодарностей
53
Баллы
28
В c# не знаю, но стандартными кубиками нормально скачивается - скачиваешь эту страничку getом с куками, пересохраняешь файл с расширением .png
 
  • Спасибо
Реакции: iulius

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
В c# не знаю, но стандартными кубиками нормально скачивается - скачиваешь эту страничку getом с куками, пересохраняешь файл с расширением .png
Спасибо за оперативный ответ. В этом и сложность пробовал и С# и кубиками, загружаю профиль с куками, гетом сохраняю а сохраняет страницу авторизации вместо фото. Хотя для сохранения фото не нужно быть даже авторизированным.

не понятно где ошибка.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
А зачем ты вообще берешь такие ссылки?

В коде же есть прямые ссылки на картинки, напр. http://infosklad.org/data/attachments/17/17409-b36a0273497f4f4a05fc2686e44ae44a.jpg
HTML:
<a href="http://infosklad.org/attachments/2133828254-jpg.19290/" target="_blank"><img src="data/attachments/17/17409-b36a0273497f4f4a05fc2686e44ae44a.jpg" alt="2133828254.jpg" class="bbCodeImage"></a>
 
  • Спасибо
Реакции: iulius

maloibtc

Client
Регистрация
08.04.2016
Сообщения
365
Благодарностей
91
Баллы
28
Здравствуйте друзья
Подскажите пожалуйста кто знает фото с форумов xenforo в браузере открываеться а при скачивание ЗП (с# и кубиками) скачивает ca55ca0c7329476b82f49de3033b0e9b-png.18961 - а в исходнике весь html код страницы.
Вот))Ссылку бери прямую как написал Dimionix

Код:
//-------------------------------------------------------------------------
    var href = "http://infosklad.org/data/attachments/17/17409-b36a0273497f4f4a05fc2686e44ae44a.jpg";//переменная с сылкой на файл
    var proxy = string.Empty;//прокси если нужны
    var respType = ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File;
    var timeoutRequest = 30000;//таймаут запроса
    var cookies = string.Empty;//куки если нужны,так же из переменной
    var userAgent = project.Profile.UserAgent;//юзер агент из профиля,или из переменной
    var maxRedirectCount = 1;//кол-во редиректов
    var downloadPath = project.Directory + "\\files";//папка для загрузки файла
//-------------------------------------------------------------------------
    file = ZennoPoster.HttpGet(
      href,
      proxy,
      "UTF8",
      respType,
      timeoutRequest,
      cookies,
      userAgent,
      false,
      maxRedirectCount,
      null,
      downloadPath
      );
 
  • Спасибо
Реакции: iulius

maloibtc

Client
Регистрация
08.04.2016
Сообщения
365
Благодарностей
91
Баллы
28
Здравствуйте друзья
Подскажите пожалуйста кто знает фото с форумов xenforo в браузере открываеться а при скачивание ЗП (с# и кубиками) скачивает ca55ca0c7329476b82f49de3033b0e9b-png.18961 - а в исходнике весь html код страницы.
Отпишись,работает или нет))
 
  • Спасибо
Реакции: iulius

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
А зачем ты вообще берешь такие ссылки?

В коде же есть прямые ссылки на картинки, напр. http://infosklad.org/data/attachments/17/17409-b36a0273497f4f4a05fc2686e44ae44a.jpg
HTML:
<a href="http://infosklad.org/attachments/2133828254-jpg.19290/" target="_blank"><img src="data/attachments/17/17409-b36a0273497f4f4a05fc2686e44ae44a.jpg" alt="2133828254.jpg" class="bbCodeImage"></a>
Спасибо и правда, не авторизованным пользователям показывается один код а после авторизации другой, заменяют код скрывая src на исходник.
Проверял как авторизованный пользователь и не заметил разницы.

За не имением решения вижу только один вариант:
- спарсить 2 раза с поиском и заменой в своей базе.

или может ктото сталкивался и нашел более изящьное решение ?

не авторизованным:
---------------------------
HTML:
<br>
    <a href="http://infosklad.org/attachments/d5334b2c1d73-jpg.19234/" target="_blank"><img src="data/attachments/17/17353-948a7f4da19e2dde0915abba7880b1cf.jpg" alt="d5334b2c1d73.jpg" class="bbCodeImage"></a>

<br>
авторизованным
----------------------
HTML:
<br>
<img src="http://infosklad.org/attachments/d5334b2c1d73-jpg.19234/" alt="d5334b2c1d73.jpg" class="bbCodeImage LbImage" style="">
<br>
 
Последнее редактирование:
  • Спасибо
Реакции: Dimionix

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Специально зарегался на сайте, чтоб посмотреть, что там и как.
В общем скачивай GET запросом с куками по своим ссылкам и потом переименовывай. Ну или как-то так:
C#:
string proxy = project.Variables["Proxy"].Value;
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
string cookies = project.Variables["Cookies"].Value;
string url = project.Variables["URL"].Value;
string downloadPath = project.Directory + @"\Files\";

// GET запрос
var resultGet = ZennoPoster.HttpGet(
    url,
    proxy,
    "UTF-8",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File,
    30000,
    cookies,
    userAgent,
    true,
    5,
    null,
    downloadPath
);

// Переименование файла
string filePath = downloadPath + Regex.Match(url, "(?<=attachments/).*(?=/)").Value;
string newFilePath = downloadPath + Regex.Match(url, @"(?<=attachments/).*?(?=\.)").Value.Replace("-", ".");
File.Move(filePath, newFilePath);
Получить куки можно так:
C#:
return instance.GetCookie("infosklad.org", true);
 
  • Спасибо
Реакции: barkasian и iulius

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
Спасибо друзья за поддержку, загвоздка была в куках. Все работает идеально.
 

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