Extraer URLs de imágenes de una web

Publicado en Programación el 29 de May de 2009 por Manel Pérez Mata
Tags: , ,

¿Nunca habeis necesitado extraer todas las URLs de las imágenes de una web? Pues con este script mostraremos por pantalla las rutas de todas las imágenes contenidas en la página $url

$url = "http://www.elmejorcoche.com";

$html = file_get_contents($url);

preg_match_all("/<img[\s]+[^>]*?src[\s]?=[\s\"\']+(.*\.([gif|jpg|png|bmp|jpeg|tiff]{3,4}))[\"\']+.*?>/", $html, $images);

$images = $images[1];
$list = array();

foreach($images as $img) {
	echo $img."<br>";
}

Si tu versión de PHP es inferior a 4.3.0 (en primer lugar te recomiendo pasar a PHP5) puedes usar la siguiente función en lugar de file_get_contents:

function getHtml($url) {
    $foo = @fopen($url,"r");
    if($foo){
        while(!feof($foo)){
            $html.=fgets($foo);
        }
    }
    return $html;
}
Compártelo!! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Meneame
  • BarraPunto
  • Technorati
  • Google Bookmarks
  • Facebook
  • LinkedIn
  • del.icio.us
  • Digg
  • Reddit
  • Live-MSN
  • MySpace
  • TwitThis
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

4 Comments on “ Extraer URLs de imágenes de una web ”

  • Jordi Anta Ugarte
    May 29th, 2009 10:41

    Realmente es necesario hacer la comprobación de la extensión? Si estamos leyendo un tag “img” siempre tendremos una imagen en el atributo “src”, no?

  • Manel Pérez Mata
    May 29th, 2009 11:11

    Sí y no… a veces se utiliza el tag img para añadir código de seguimiento haciendo que el src de la imágen ataque a una url del estilo (y me lo estoy inventando al vuelo):

    <img src=”http://www.tecnoretales.com/contador-visitas.php” width=”0″ height=”0″ />

    Esto por ejemplo, suele hacerse si queremos tener un contador de visitas en un site externo; por ejemplo, queremos contar cuanta gente ha visto un anuncio nuestro publicado en loquo, pues añadimos ese tag y currandose el script contador-visitas.php vamos contando.

    Cuando hice este código, necesitaba limitar los formatos a los que se indican, en cualquier caso, quitando esto \.([gif|jpg|png|bmp|jpeg|tiff]{3,4}) de la regular expression, las cogerá todas.

  • Jordi Anta Ugarte
    May 29th, 2009 11:20

    Ahm pues no tenia ni idea de es técnica. A priori parece un poco raro y/o chapucero pero si dices q se usa, pues no voy a ser yo quien te contradiga.

  • Manel Pérez Mata
    May 29th, 2009 11:24

    Cierto, yo también lo encuentro algo chapucero, peeeeero se usa y bastante, sobre todo en mailings de empresas, con eso consiguen estadísticas bastante fiables de número de aperturas.

Leave a Reply