[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание картинок с помощью CURL
danilo
Есть, скажем, 10000 таких же ссылок ежедневно:

https://www.it4profit.com/catalogimg/wic/1/AD21000QN5M

Это путь к изображению товара. Необходимо их все скачивать в свою папку на своем сервере (дедик). file_get_contents() дает порядка 130-150 файлов и вешает скрипт.

Как скачать это дело cURL'ом? Помогите, хоть на примере одного данного файла.
Огромное спасибо.



Спустя 15 минут, 30 секунд (25.10.2011 - 20:09) Winston написал(а):
Сделаю за вас, за деньги.

Спустя 2 минуты, 29 секунд (25.10.2011 - 20:12) danilo написал(а):
Цитата (Winston @ 25.10.2011 - 17:09)
Сделаю за вас, за деньги.

дофига так уже заработал? )))

Спустя 3 минуты, 27 секунд (25.10.2011 - 20:15) Winston написал(а):
Цитата (danilo @ 25.10.2011 - 20:12)
дофига так уже заработал? )))

Сто пиццот тыщ smile.gif

Спустя 5 минут, 36 секунд (25.10.2011 - 20:21) Игорь_Vasinsky написал(а):
danilo
а ты дофига так развёл?

Спустя 9 минут, 7 секунд (25.10.2011 - 20:30) danilo написал(а):
Не пойму, здесь что, братва собралась? Не можешь помочь - проходи мимо. Или в кайф посраться с кем-нить? Скучно?

UPD: А развел дофига. Но не так.

Спустя 4 минуты, 46 секунд (25.10.2011 - 20:34) Игорь_Vasinsky написал(а):
Еще добавь к

Цитата
Не можешь помочь


"или не хочешь", а то я потерялся чё мне делать - тут сидеть или валить.

те мультикурл нужен. юзай поиск по форуму.
а человек которого ты обломал - есть автор этой статьи.

Спустя 1 минута, 27 секунд (25.10.2011 - 20:36) alex12060 написал(а):
Цитата
Как скачать это дело cURL'ом? Помогите, хоть на примере одного данного файла.


Да можно и не курлом. Хотя желательней им, с подделкой реферера и маскировкой под браузер.
А откуда ты будешь брать ссылки? Они у тебя будут?

Цитата
Не пойму, здесь что, братва собралась?


Да, угадал. Тут не любят халявщиков. Если хочешь получить ответ, следую правилу форума:

У меня не получается, хмм...
Зашел на форум, создал тему, описал суть проблемы, показал код, который не работает (ТВОИ НАРАБОТКИ!!!), далее тебе помогут.

А у тебя тут ТЗ.

Думай головой, тут делов то на 15 минут. Ну или давай за деньги напишем, раз дело на то пошло.

В чужой монастырь со своим уставом не ходят. Запомни это.

Если хочешь получить вменяемый ответ, попробуй написать код. Я тебе рассказал немного, дальше, уж, подумай сам. Всем пис.

Спустя 8 минут, 36 секунд (25.10.2011 - 20:45) danilo написал(а):
Ссылки мне дистрибьютор дает в XML. За картинкой лезу официально - ничего не тырю, все разрешено (пробовал 10000 картинок через img src опубликовать - все получилось норм). Вот кусок моего говнокода, если интересно:

foreach($img as $i) // в переменной img лежит урлъ 
{
$imgContent = file_get_contents($i);
file_put_contents('/_ABSOLUTE_PATH_/www/images/image' . $c++ . '.jpg', $imgContent);
}


Как-бы работает, но 150 раз всего.

Спустя 3 минуты, 33 секунды (25.10.2011 - 20:48) danilo написал(а):
Цитата (Игорь_Vasinsky @ 25.10.2011 - 17:34)
а человек которого ты обломал - есть автор этой статьи.

Не думал, что обломал. Просто надо немного спокойнее шутить. Сюда, вроде, за помощью приходят...

Спустя 2 минуты, 9 секунд (25.10.2011 - 20:50) Игорь_Vasinsky написал(а):
xml? так ещё проще, не надо регулярки дёргать юзай simpleXML для разбора

file_get_contents() - дёргаешь xml и усе

Цитата
Не думал, что обломал. Просто надо немного спокойнее шутить. Сюда, вроде, за помощью приходят...


еслиб ье надо было $a + $b - то да, а так те объяснили с чем тут за помощью приходят

Спустя 2 минуты, 39 секунд (25.10.2011 - 20:53) Winston написал(а):
Цитата (Игорь_Vasinsky @ 25.10.2011 - 20:50)
file_get_contents() - дёргаешь xml и усе

Достаточно будет
simplexml_load_file('путь_к_файлу_на_сервере');

Спустя 4 минуты, 55 секунд (25.10.2011 - 20:58) danilo написал(а):
XML я уже давно распарсил (был вопрос, откуда я беру ссылки). Из XML беру.
Кстати, SimpleXML для таких объемных файлов - плохо. Пользую XMLReader.

По этим ссылкам скачать к себе на сервер не могу. В этом и вопрос.

Спустя 33 минуты, 1 секунда (25.10.2011 - 21:31) alex12060 написал(а):
danilo

пишешь в массив, пускаешь в цикл скачивание + запись + рандомное имя и все.

Типа так:


set_time_limit(0);

$arr = array(); // Тут 10К картинок
$n = count($arr);

for($i=0; $i<=$n; ++$i) {
// Тут чтение и запись
}

Спустя 24 минуты, 19 секунд (25.10.2011 - 21:55) danilo написал(а):
Суть в том, что все это уже опробовано. Результат - 134 картинки. Вот код.

$imgSQL = "SELECT id , ImageURL FROM store ORDER BY id ASC";
$imgRES = mysql_query($imgSQL);

while ($img = mysql_fetch_object($imgRES))
{
$imgContent = file_get_contents(urlencode($img->ImageURL));
file_put_contents('/-path-/images/' . $img->id . '.jpg', $imgContent);
}


почему-то обрывает заказчку. На страничку можно хоть все 10000 вывести, а скачать - фиг.

Спустя 26 минут, 29 секунд (25.10.2011 - 22:22) killer8080 написал(а):
danilo
отключи ограничение по времени
set_time_limit(0);
ignore_user_abort(true);

Спустя 1 минута, 44 секунды (25.10.2011 - 22:23) Winston написал(а):
Цитата (killer8080 @ 25.10.2011 - 22:22)
ignore_user_abort(true);

ignore_user_abort(false);
;)

Спустя 11 минут, 15 секунд (25.10.2011 - 22:35) killer8080 написал(а):
Winston
да ну smile.gif
Цитата
value

If set, this function will set the ignore_user_abort ini setting to the given value. If not, this function will only return the previous setting without changing it.

Спустя 16 минут, 30 секунд (25.10.2011 - 22:51) Winston написал(а):
Цитата (killer8080 @ 25.10.2011 - 22:35)
да ну

Ты поставил true, потому прервать выполнение скрипта не получится, и будет тот скрипт хрен-сколько выполнятся...
Или я туплю? huh.gif

Спустя 7 минут, 54 секунды (25.10.2011 - 22:59) killer8080 написал(а):
Цитата (Winston @ 25.10.2011 - 22:51)
Ты поставил true, потому прервать выполнение скрипта не получится, и будет тот скрипт хрен-сколько выполнятся...

Именно это и нужно, чтобы скачать огромное количество файлов. Время выполнения нужно ограничивать через set_time_limit(). Иначе работа скрипта может прерваться по истечении таймаута tcp или закрытии страницы в браузере.

Спустя 6 минут, 20 секунд (25.10.2011 - 23:05) danilo написал(а):
вроде курл пошел, спасибо Winston:

$name="-filename-";
$fp=fopen($name,"w");//создаем пустой файл

$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "-url-");
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);



Только делается все очень долго (минут восемь). И не полностью, но уже лучше - 1100 файлов скачано. Щас попробую антиаборт сделать )) Хотя, чувствую, что это не выход...

Спустя 4 минуты, 16 секунд (25.10.2011 - 23:10) killer8080 написал(а):
danilo
наверно нужно копать в сторону мульти курл

Спустя 18 секунд (25.10.2011 - 23:10) Winston написал(а):
Цитата (danilo @ 25.10.2011 - 23:05)
спасибо Winston

За что спасибо ? smile.gif
Цитата (danilo @ 25.10.2011 - 23:05)
Только делается все очень долго (минут восемь)

curl_multi ускорит процесс

Спустя 36 минут, 41 секунда (25.10.2011 - 23:47) danilo написал(а):
Цитата (Winston @ 25.10.2011 - 20:10)
Цитата (danilo @ 25.10.2011 - 23:05)
спасибо Winston

За что спасибо ? smile.gif
Цитата (danilo @ 25.10.2011 - 23:05)
Только делается все очень долго (минут восемь)

curl_multi ускорит процесс

Отыскал один твой ответ в дебрях форума ) За это и спасибо.

multi надо попробовать. тож спасибо )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.