PHP Web Crawler: Daten aus mehreren Links sammeln
Frage:
Erstellen Sie ein PHP Skript zum Abrufen von Daten aus mehreren Links auf einer Webseite und zum Speichern in einer lokalen Datei.
Antwort:
Verwendung von DOM und Tiefenkontrolle:
function crawl_page($url, $depth = 5) { static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } $seen[$url] = true; $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); // Handle relative 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'] . '://'; $href .= $parts['host']; if (isset($parts['port'])) { $href .= ':' . $parts['port']; } $href .= dirname($parts['path'], 1).$path; } } crawl_page($href, $depth - 1); } // Output data echo "URL:", $url, PHP_EOL, "CONTENT:", PHP_EOL, $dom->saveHTML(), PHP_EOL, PHP_EOL; } // Usage crawl_page("http://hobodave.com", 2);
Hinweise:
Das obige ist der detaillierte Inhalt vonWie erstellt man einen PHP-Webcrawler, um Daten aus mehreren Links zu sammeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!