Obtener enlaces de una página Web con sus atributos

  • Autor Autor Andresledo
  • Fecha de inicio Fecha de inicio
A

Andresledo

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola, llevo varias horas intentando extraer todos los enlaces de una pagina web y quedarme con el link, el anchor text y el rel, pero no soy capaz de hacerlo.

Estoy probando con el regex, pero es una estructura que me cuesta entender.

¿Alguien me puede echar una mano?

Gracias

Enviado desde mi ONEPLUS A3003 mediante Tapatalk
 
Podrías usar file_get_contents() y luego con explode conviertes en array cada string que comience por "<a ", luego recorres el array (foreach) y jugando con strstr, strpos y substr puedes obtener cada link, anchor text y el rel. :encouragement:
 
[MENTION=42628]Andresledo[/MENTION] Prueba con esto! :encouragement:

PHP:
<?php

$html = file_get_contents('https://remolacha.net/');
if(!empty($html)){
	
	$dom = new DomDocument();
	@$dom->loadHTML($html);
	$links = $dom->getElementsByTagName('a');
	
	foreach($links as $link){
		echo 'TEXTO: '.$link->nodeValue.'<br/>';
		echo 'LINK: '.$link->getAttribute('href').'<br/>';
		echo 'REL: '.$link->getAttribute('rel').'<br/><br/>';
	}
	
}

?>
 
[MENTION=42628]Andresledo[/MENTION] Prueba con esto! :encouragement:

PHP:
<?php

$html = file_get_contents('https://remolacha.net/');
if(!empty($html)){
	
	$dom = new DomDocument();
	@$dom->loadHTML($html);
	$links = $dom->getElementsByTagName('a');
	
	foreach($links as $link){
		echo 'TEXTO: '.$link->nodeValue.'<br/>';
		echo 'LINK: '.$link->getAttribute('href').'<br/>';
		echo 'REL: '.$link->getAttribute('rel').'<br/><br/>';
	}
	
}

?>

Justo lo que necesitaba, gracias. Yo ya me estaba complicando bastante.

Saludos.
 
Atrás
Arriba