Código de PHP - Script para capturar los links que tiene una pagina web

Imágen de perfil
Val: 1.196
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Script para capturar los links que tiene una pagina webgráfica de visualizaciones


PHP

Publicado el 7 de Agosto del 2014 por Xavi (534 códigos)
4.672 visualizaciones desde el 7 de Agosto del 2014
Este código captura el contenido de una web, y mediante el objeto DOMDocument obtiene todos los enlaces y devuelve todas las url's de dicha web. Si la web es una redirección no funcionará.

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 7 de Agosto del 2014gráfica de visualizaciones de la versión: Versión 1
4.673 visualizaciones desde el 7 de Agosto del 2014
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
 * los enlaces que hay en la pagina
 * 
 * Desarrollado por http://www.lawebdelprogramador.com/
 */
 
# especificamos la url a capturar los enlaces
$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 <a ...>
	$anchor_tags = $doc->getElementsByTagName("a");
 
	# recorremos cada uno de los tags encontrados
	foreach ($anchor_tags as $tag)
	{
		# obtenemos la url
		$url=$tag->getAttribute("href");
 
		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)

6 de Julio del 2018
estrellaestrellaestrellaestrellaestrella
gracias por tu ayuda xve:

Esto es muy grande para mi, buscare otras opciones como un iframe y como recorrer los select y sacar los valores.

No te haces una idea de la cantidad de horas que perdemos en el trabajo por esta cuestion.

Saludos
Responder

Comentar la versión: Versión 1

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

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2735