Código PHP para extrair as imagens de uma URL (website)

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.

Código PHP para extrair as imagens de uma URL (website)

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);	
}

 

5 comentários sobre “Código PHP para extrair as imagens de uma URL (website)

    1. Oi Anderson, banca, esse script é muito útil, já tive que extrair imagens de vários sites e automatizando dessa forma fica bem mais prático, :)

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *