Cómo extraer todas las URLs de una página web mediante PHP

El principal uso de extraer todas las URLs de una página web suele ser la creación de un sitemap que contenga todas las direcciones posibles de un sitio web. Puedes obtener de forma sencilla todas las URLs de un sitio web mediante PHP. En este artículo te proporcionamos un simple snippet de código que te ayudará a extraer todas las direcciones web de un sitio web.

El siguiente código PHP te ayudará a obtener todas las direcciones web de un sitio web. La función file_get_contents() se utiliza para obtener el contenido de una página web desde una URL. El contenido obtenido de la página web lo almacenaremos en una variable llamada $urlContent. Todas las URLs o enlaces los extraeremos del contenido HTML de la página web utilizando la clase DOMDocument. Todos los enlaces los validaremos utilizando FILTER_VALIDATE_URL antes de devolverlos e imprimirlos suponiendo que la URL es válida.

$urlContent = file_get_contents('http://php.net');

$dom = new DOMDocument();
@$dom->loadHTML($urlContent);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

for($i = 0; $i < $hrefs->length; $i++){
    $href = $hrefs->item($i);
    $url = $href->getAttribute('href');
    $url = filter_var($url, FILTER_SANITIZE_URL);
    // validate url
    if(!filter_var($url, FILTER_VALIDATE_URL) === false){
        echo '<a href="'.$url.'">'.$url.'</a><br />';
    }
}

Fuente: codexworld.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP