PHP Web Crawler: Mengumpul Data daripada Pelbagai Pautan
Soalan:
Buat PHP skrip untuk mendapatkan semula data daripada berbilang pautan pada halaman web dan menyimpannya dalam tempatan fail.
Jawapan:
Menggunakan DOM dan Kawalan Kedalaman:
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);
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Membina Crawler Web PHP untuk Mengumpul Data daripada Berbilang Pautan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!