Código de PHP - Script para capturar las imágenes que tiene una pagina web

Imágen de perfil

Script para capturar las imágenes que tiene una pagina webgráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 13 de Agosto del 2014 por Xavi
2.180 visualizaciones desde el 13 de Agosto del 2014. Una media de 21 por semana
Al igual que con el código para capturar urls, este código captura el contenido de una web, y mediante el objeto DOMDocument obtiene todos las direcciones de las imágenes de dicha web. Si la web es una redirección no funcionará.

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 13 de Agosto del 2014gráfica de visualizaciones de la versión: Versión 1
2.181 visualizaciones desde el 13 de Agosto del 2014. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/**
 * Script que captura el contenido de una pagina HTML y devuelve todos
 * las direcciones hacia las imágenes que hay en la pagina
 * 
 * Desarrollado por http://www.lawebdelprogramador.com/
 */
 
# especificamos la url a capturar las imágenes
$urlInternet="http://www.lawebdelprogramador.com";
 
/**
 * Función para descargar el contenido de una página web
 * Tiene que recibir la url a descargar.
 * Devuelve el contenido de la pagina o false en caso de no ser una url
 * existente o una redirección.
 */
function get_contentUrl($url)
{
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
	curl_setopt($ch, CURLOPT_TIMEOUT, 10);
	$data = curl_exec($ch);
	$httpcode=curl_getinfo($ch, CURLINFO_HTTP_CODE);
	curl_close($ch);
 
	if($httpcode>=200 && $httpcode<300)
		return $data;
	return false;
}
 
if($contenidoWeb=get_contentUrl($urlInternet))
{
	$urls=array();
 
	# creamos una instanacia a DOMDocument
	$doc = new DOMDocument;
	$doc->preserveWhiteSpace = FALSE;
 
	# cargamos la pagina web desdecargada desde la función get_contentUrl()
	@$doc->loadHTML($contenidoWeb);
 
	# buscamos todos los tags del tipo <img ...>
	$anchor_tags = $doc->getElementsByTagName("img");
 
	# recorremos cada uno de los tags encontrados
	foreach ($anchor_tags as $tag)
	{
		# obtenemos la url de las imagenes
		$url=$tag->getAttribute("src");
 
		if(strlen($url)>=4 && substr($url,0,4)=="http")
		{
			# si la url tiene 4 caracteres o mas y empieza por http entendemos que
			# la url es entera... (http://.....)
			$urls[]=$url;
		}elseif(strlen($url) && substr($url,0,1)=="/"){
			# si la url tiene una longitud mayor a 0 y empieza por /
			# le añadimos el dominio delante... (/pagina)
			$urls[]=$urlInternet.$url;
		}else{
			# Si no empieza por http ni por una barra, entendemos que es un nombre
			# de un arhivo... (pagina.html)
			$urls[]=$urlInternet."/".$url;
		}
	}
 
	# eliminamos los valores duplicados del array
	$urls=array_unique($urls);
 
	# ordenamos los valores
	sort($urls);
 
	# mostramos cada uno de los enlaces
	foreach($urls as $url)
	{
		echo "<br>".$url;
	}
}else{
	echo "La página no es correcta, o es una redirección.";
}
?>



Comentarios sobre la versión: Versión 1 (1)

manuel
25 de Enero del 2015
estrellaestrellaestrellaestrellaestrella
Excelente, pero ahora como puedo mostrar las imagenes y no solo los enlace?
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2739