Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah cara saya membina perangkak PHP mudah untuk mengekstrak pautan dan kandungan daripada tapak web?
Mencipta Perangkak PHP Mudah
Merangkak tapak web dan mengekstrak data ialah tugas biasa dalam pengaturcaraan web. PHP menyediakan rangka kerja yang fleksibel untuk membina perangkak, membolehkan anda mengakses dan mendapatkan maklumat daripada halaman web jauh.
Untuk mencipta perangkak PHP mudah yang mengumpul pautan dan kandungan daripada halaman web tertentu, anda boleh menggunakan pendekatan berikut :
Menggunakan Penghurai 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); ?>
Perangkak ini menggunakan penghurai DOM untuk menavigasi melalui HTML halaman web, mengenal pasti semua teg sauh dan mengikut sebarang pautan mereka mengandungi. Ia mengumpul kandungan halaman yang dipautkan dan membuangnya ke dalam output standard. Anda boleh mengubah hala output ini ke fail teks untuk menyimpan data yang dikumpul secara setempat.
Ciri Tambahan:
Atas ialah kandungan terperinci Bagaimanakah cara saya membina perangkak PHP mudah untuk mengekstrak pautan dan kandungan daripada tapak web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!