Como extrair as imagens de um site utilizando PHP. Monte uma lista com as URL das imagens ou salve-as em um diretório em seu servidor.

Primeira parte
Este código é parte principal de nosso script, nele iremos acessar a URL, baixar todo o código HTML e processa-lo, para localizar as imagens.
$url = "http://siteexemplo.com.br";
$html = file_get_contents( $url );
$dom = new domDocument;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
$output = array();
foreach ($images as $image) {
$output[] = $image->getAttribute('src');
}
echo "<pre>";
print_r($output);
echo "</pre>";
Com a função file_get_contents pegamos todo contudo da página.
Após isso utilizando o domDocument, carregamos o HTML “baixado” com a função loadHTML(), uma fez carregado com sucesso poderemos utilizar as funções disponíveis na classe para trabalhar com HTML.
Utilizando getElementsByTagName procuramos por ocorrências da Tag “img”, que é o nosso objetivo.
Salvando as imagens
Complemente o código acima com este para salvar as imagens em um diretório no seu servidor.
$dir = "temp";
foreach( $output as $url ){
$ch = curl_init($url);
$url = explode("/",$url);
$name = $url[count($url) - 1];
$fp = fopen($dir . "/" . $name, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
Código Completo
Para extrair as imagens de um site.
$url = "http://rogertakemiya.com.br";
$html = file_get_contents( $url );
$dom = new domDocument;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
$output = array();
foreach ($images as $image) {
$output[] = $image->getAttribute('src');
}
$dir = "temp";
foreach( $output as $url ){
$ch = curl_init($url);
$url = explode("/",$url);
$name = $url[count($url) - 1];
$fp = fopen($dir . "/" . $name, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
6 comentários sobre “Código PHP para extrair as imagens de uma URL (website)”