Скачивание изображений GET запросом.

Kloud

Client
Регистрация
22.12.2014
Сообщения
3
Благодарностей
0
Баллы
1
Добрый день.

Вопрос такой - нужно скачать порядка 500000 изображений с сервера.
Ссылки на каждую картинку есть, пытаюсь сделать посредством GET запросов -> Сохранить как файл.
Ссылка такого вида: http://q2.s4.jc9.ru/filecpd.php?u=aHR0cDovL2RhdGEuamM5LnJ1L2ltYWdlcy9famN0cmFkZS8yMDE2MDEvMjkvMDA2NjE3L2pjdHJhZGUxNDU0MDM3OTQ3LTQwNTc2LTU3NjE0OC5qcGc=&tp=custom&w=1280&h=960&s=1&l&nocrop&sc=730ee&ver=2

Как видите, это PHP обработчик, который подгружает картинку с сервера по запросу.
GET запрос скачивает какую-то белеберду с названием filecpd.php и сохраняет как текстовый файл.
Что можно сделать в такой ситуации?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 116
Баллы
113
GET запрос скачивает какую-то белеберду с названием filecpd.php и сохраняет как текстовый файл.
Что можно сделать в такой ситуации?
Сменить расширение скачанного файла, например, на .jpg (filecpd.php = filecpd.jpg).

После GET запроса экшен "Обработка текста - Замена" (в переменной GET запроса заменить .php на .jpg, сохранить в новую переменную).
Далее экшен "Файлы - Переместить файл" (в поле "Путь к файлу" - переменная GET запроса, в поле "Новый путь" - новая переменная).
 
  • Спасибо
Реакции: Bollador

Kloud

Client
Регистрация
22.12.2014
Сообщения
3
Благодарностей
0
Баллы
1
Если его сохранять в формате jpg/jpeg/png и т.п., то он просто не открывается.

Как я понял, он даже не грузит картинку через GET запрос.
Через браузер всё ок, но по времени в 50 потоков это занимает больше двух дней.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 116
Баллы
113

Kloud

Client
Регистрация
22.12.2014
Сообщения
3
Благодарностей
0
Баллы
1
Спасибо, разобрался, не в тот формат сохранял!
 

Err0r

Client
Регистрация
17.05.2015
Сообщения
157
Благодарностей
110
Баллы
43
а так еще быстрее

 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 640
Баллы
113
Сменить расширение скачанного файла, например, на .jpg (filecpd.php = filecpd.jpg).

После GET запроса экшен "Обработка текста - Замена" (в переменной GET запроса заменить .php на .jpg, сохранить в новую переменную).
Далее экшен "Файлы - Переместить файл" (в поле "Путь к файлу" - переменная GET запроса, в поле "Новый путь" - новая переменная).
вроде как все эти действия можно реализовать в перемещении файла.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 712
Баллы
113

andy678

Client
Регистрация
15.06.2016
Сообщения
6
Благодарностей
0
Баллы
1

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 640
Баллы
113

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 712
Баллы
113
А можно добавить сюда referer? А то без него не скачивает на многих ресурсах. Т.к. получается прямая скачка, что блокируется.
Тогда GET запросом. Там можно реферер подставить)
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
В директиву usings добавь using System.Net;

C#:
using (WebClient webClient = new WebClient())
            {
                webClient.Headers.Add("Referrer", "http://www.ya.ru"); //
                webClient.Proxy = new WebProxy("127.0.0.1:8888");
                webClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
                webClient.DownloadFile("http://xxx.com/captcha2.php","axi.jpg");
            }
 
  • Спасибо
Реакции: Dimionix

andy678

Client
Регистрация
15.06.2016
Сообщения
6
Благодарностей
0
Баллы
1
Дело в реферере.

Get-ом работало, с реферером. Потом перестало.

Через сохранение изображение работает, но без рефера накладывает вотермарк.

В директиву usings добавь using System.Net;
Попробую. Правде не знаю где копать, второй день с zenno :-)
 

andy678

Client
Регистрация
15.06.2016
Сообщения
6
Благодарностей
0
Баллы
1
Решилось следующим образом.

Использую socks5.

Когда в GET, на вкладке Proxy, установлено Active project proxy - НЕ работало, хотя http - ходил нормально под проксёй.

Установил вручную в GET, на вкладке Proxy, Other и прописал вручную адрес + установил SOCKS5 - ЗАРАБОТАЛО.
 

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