Maison >développement back-end >tutoriel php >Comment créer un robot d'exploration PHP simple pour extraire les liens et le contenu d'un site Web ?
Création d'un robot d'exploration PHP simple
Explorer des sites Web et extraire des données est une tâche courante dans la programmation Web. PHP fournit un cadre flexible pour créer des robots d'exploration, vous permettant d'accéder et de récupérer des informations à partir de pages Web distantes.
Pour créer un robot d'exploration PHP simple qui collecte les liens et le contenu d'une page Web donnée, vous pouvez utiliser l'approche suivante :
Utilisation d'un analyseur DOM :
<?php function crawl_page($url, $depth = 5) { // Prevent endless recursion and circular references static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } // Mark the URL as seen $seen[$url] = true; // Load the web page using DOM $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); // Iterate over all anchor tags (<a>) $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); // Convert relative URLs to absolute URLs if (0 !== strpos($href, 'http')) { $path = '/' . ltrim($href, '/'); if (extension_loaded('http')) { $href = http_build_url($url, array('path' => $path)); } else { $parts = parse_url($url); $href = $parts['scheme'] . '://'; if (isset($parts['user']) && isset($parts['pass'])) { $href .= $parts['user'] . ':' . $parts['pass'] . '@'; } $href .= $parts['host']; if (isset($parts['port'])) { $href .= ':' . $parts['port']; } $href .= dirname($parts['path'], 1) . $path; } } // Recursively crawl the linked page crawl_page($href, $depth - 1); } // Output the crawled page's URL and content echo "URL: " . $url . PHP_EOL . "CONTENT: " . PHP_EOL . $dom->saveHTML() . PHP_EOL . PHP_EOL; } crawl_page("http://example.com", 2); ?>
Ce robot utilise un analyseur DOM pour naviguer dans le code HTML de la page Web, identifie toutes les balises d'ancrage et suit tous les liens. ils contiennent. Il collecte le contenu des pages liées et le transfère dans la sortie standard. Vous pouvez rediriger cette sortie vers un fichier texte pour enregistrer les données collectées localement.
Fonctionnalités supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!