Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сообщение от Randomize
Открытие веб страницы
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://boolean.name/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $html = curl_exec($ch); curl_close($ch);
* поменять boolean.name на твою url
Скачивание картинки
$file = fopen('moi_golie_fotki.jpg',"wb");// Тут путь куда сохранять картинку $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://forum.boolean.name/image.php?u=4572&dateline=1368302793'); // url до твоей авы curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_FILE, $file); $html = curl_exec($ch); curl_close($ch);
Комборешение, поиск всех картинок на странице и их сохранение:
<?php
error_reporting(E_ALL); ini_set('display_errors', 'On'); ini_set('display_startup_errors', 'On'); ini_set('error_reporting', '-1'); ini_set('log_errors', 'On');
set_time_limit(0); // Чтоб скрипт не вышибло по таймауту
include 'phpQuery-onefile.php';
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://forum.boolean.name/showthread.php?t=20132'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $html = curl_exec($ch); curl_close($ch);
$doc = phpQuery::newDocument($html); $stats = array();
foreach ($doc['img'] as $img) { // 'img' - селектор элемента $src = pq($img)->attr('src'); // грязный фикс относительных путей типа /images/photo.png $url = (mb_strpos($src, 'http') !== 0) ? 'http://forum.boolean.name/' . ltrim($src, '/.') : $src;
$filename = "./grabbed/" . uniqid(); // Временное имя файла в папке "grabbed" $file = fopen($filename, "wb"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // url до твоей авы curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_FILE, $file); curl_exec($ch); curl_close($ch);
$mime = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); // Получаем mime тип скачаной херни
$mime2ext = array(// Словарик для волшебных превращений mime в расширение 'image/jpeg' => 'jpeg', 'image/png' => 'png', 'image/gif' );
// Переименовываем файл так чтоб у него появилось расширение, если хз что за файл будет .wtf rename($file, $file . (isset($mime2ext[$mime]) ? $mime2ext[$mime] : '.wtf')); }
Скачивает все картинки из элемнтов img со страницы "http://forum.boolean.name/showthread.php?t=20132" и сохраняет их в папку ./grabbed/ с уникальными именами.
|
Спасибо за подробное объяснение! Но пока код не удалось испытать.
Использую Денвер. Curl установил. Все подключил.
Но после запуска твоего кода, у меня вылетают предупреждения, связанные с Curl.
Возможно это как-то связано с несовместимостью версий curl и php?
UPD Попробую скачать Open Server и из под него запустить.
|