Dalam era Internet, maklumat adalah seperti sungai yang tidak berkesudahan, mengalir keluar secara berterusan. Kadangkala kita perlu mengambil beberapa data daripada Web untuk analisis atau tujuan lain. Pada masa ini, program perangkak amat penting. Program crawler, seperti namanya, adalah program yang digunakan untuk mendapatkan kandungan halaman Web secara automatik.
Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP mempunyai teknologi pengaturcaraan Web yang canggih dan boleh menyelesaikan masalah pengaturcaraan perangkak dengan baik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis program perangkak, serta langkah berjaga-jaga dan beberapa teknik lanjutan.
Proses asas perangkak ialah:
Untuk membina rangka kerja perangkak asas, kita perlu menggunakan fungsi berkaitan cURL dan DOM dalam PHP. Proses khusus adalah seperti berikut:
1.1 Hantar permintaan HTTP
Gunakan cURL untuk menghantar permintaan HTTP dalam PHP Anda boleh memanggil fungsi curl_init() untuk mencipta sesi cURL baharu dan menetapkan yang sepadan parameter melalui curl_setopt() (Seperti alamat URL, kaedah permintaan, dll.):
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 其他参数设置 $response = curl_exec($ch); curl_close($ch);
1.2 Dapatkan respons dan huraikannya
Selepas mendapat respons, kita perlu menghuraikan data HTML . Proses ini memerlukan penggunaan fungsi berkaitan DOM, kerana dokumen HTML ialah struktur pokok yang terdiri daripada teg, atribut, teks, dsb., dan data ini boleh diakses dan diproses melalui fungsi DOM. Berikut ialah contoh kod untuk menghuraikan HTML dengan DOM:
$dom = new DOMDocument(); @$dom->loadHTML($response);
1.3 Ekstrak maklumat utama dan proseskannya
Langkah terakhir ialah mengekstrak data sasaran dan memprosesnya. DOM menyediakan beberapa kaedah untuk mencari dan mengekstrak elemen seperti teg, atribut dan teks Kami boleh menggunakan kaedah ini untuk mengekstrak maklumat yang kami perlukan, seperti:
$xpath = new DOMXPath($dom); $elements = $xpath->query('//div[@class="content"]'); foreach ($elements as $element) { // 其他处理代码 }
<?php // 目标URL $url = "https://www.qiushibaike.com/text"; // 发送HTTP请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ch_data = curl_exec($ch); curl_close($ch); // 解析HTML $dom = new DOMDocument(); @$dom->loadHTML($ch_data); // 提取目标数据 $xpath = new DOMXPath($dom); $elements = $xpath->query('//div[@class="content"]'); foreach ($elements as $element) { $content = trim(str_replace(" ", "", $element->nodeValue)); echo $content . " "; } ?>
Atas ialah kandungan terperinci Bagaimana untuk menulis program crawler menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!