Dengan perkembangan Internet dan pertumbuhan data yang semakin meningkat, perangkak web telah menjadi salah satu cara penting untuk mendapatkan maklumat Internet. Perangkak web ialah program automatik yang mengakses tapak web melalui permintaan rangkaian, merangkak maklumat di tapak web, memproses dan menganalisisnya. Dalam kes ini, kami akan memperkenalkan cara menulis perangkak web asas dalam PHP, menggunakan perpustakaan cURL untuk mengakses tapak web yang perlu dirangkak dan memproses maklumat yang diperolehi.
Pustaka cURL ialah alat yang sangat berkuasa untuk alat penukaran URL yang berfungsi di bawah baris arahan Ia juga menyokong HTTP/HTTPS /FTP/TELNET dan protokol rangkaian lain. Menggunakan perpustakaan cURL, anda boleh merangkak data web dengan mudah, memuat naik fail melalui data FTP, HTTP POST dan PUT serta mengakses sumber tapak jauh menggunakan kaedah pengesahan asas, ringkasan atau GSS-Negotiate. Kerana perpustakaan cURL sangat mudah dan mudah digunakan, ia digunakan secara meluas dalam penulisan perangkak web.
Dalam tutorial ini, kami akan menunjukkan cara menggunakan cURL dengan menggunakan sambungan CURL, jadi pertama sekali anda perlu memasang pustaka sambungan cURL dalam PHP. Anda boleh menggunakan baris arahan berikut untuk memasang sambungan cURL:
sudo apt-get install php-curl
Selepas pemasangan, kami perlu memulakan semula perkhidmatan php-fpm untuk memastikan pustaka sambungan boleh berjalan seperti biasa.
Kami seterusnya akan menulis perangkak web asas untuk mengakses URL yang ditentukan untuk mendapatkan beberapa halaman web pada maklumat Asas URL tersebut. Berikut ialah rangka skrip perangkak asas:
<?php $curl = curl_init(); $url = "https://www.example.com/"; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); echo $result; ?>
Kod di atas melaksanakan operasi berikut:
Anda juga boleh menyesuaikan pilihan curl_setopt mengikut keperluan untuk memenuhi keperluan anda. Sebagai contoh, anda boleh menambah pilihan untuk menetapkan tamat masa menggunakan baris kod berikut:
curl_setopt($curl, CURLOPT_TIMEOUT, 5); // 5秒超时
Selain itu, anda boleh menggunakan pilihan curl_setopt untuk menetapkan pengepala HTTP untuk mensimulasikan penyemak imbas menghantar permintaan apabila tapak web diminta. Jika anda perlu menetapkan kuki, anda boleh menggunakan pilihan curl_setopt untuk menetapkan pemegang tempat kuki atau menggunakan fungsi yang berkaitan dalam Kuki cURL.
Selepas anda memperoleh data, anda mungkin perlu mengekstrak, menghuraikan dan menapisnya. Dalam proses ini, anda mungkin perlu menggunakan fungsi pemprosesan rentetan PHP, ungkapan biasa atau perpustakaan penghuraian lain.
Untuk lebih memahami proses menulis perangkak web, berikut ialah contoh yang menunjukkan cara mengekstrak maklumat daripada tapak web . Laman web ini (www.example.com) ialah tapak web ujian yang daripadanya kami boleh mendapatkan data yang bermakna.
Pertama, kita perlu menggunakan perpustakaan cURL untuk mendapatkan data daripada tapak web yang ditentukan Berikut ialah coretan kod yang digunakan untuk mendapatkan data:
<?php $curl = curl_init(); $url = "https://www.example.com/"; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); echo $result; ?>
Menjalankan kod di atas akan mengeluarkan kod yang lengkap. kandungan HTML tapak web www.example.com. Memandangkan kita perlu mengekstrak maklumat khusus daripada tapak web yang diperoleh, kita perlu menghuraikan HTML. Kami akan menggunakan kelas DOMDocument untuk menghuraikan HTML, seperti kod berikut:
<?php $curl = curl_init(); $url = "https://www.example.com/"; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); $dom = new DOMDocument; $dom->loadHTML($result); foreach ($dom->getElementsByTagName('a') as $link) { echo $link->getAttribute('href'), PHP_EOL; } ?>
Kod di atas menggunakan kelas DOMDocument untuk memuatkan HTML dan menggunakan kaedah getElementsByTagName() untuk mendapatkan semua elemen . Selepas itu, kita boleh menggunakan kaedah getAttribute() untuk mendapatkan atribut href bagi elemen yang sepadan. Menjalankan kod, kita dapat melihat bahawa output menghuraikan dan mengeluarkan URL yang terkandung dalam tag HTML .
Dalam artikel ini, kami memperkenalkan cara menggunakan perpustakaan cURL untuk menulis perangkak web asas. Kami juga membincangkan cara mengekstrak data daripada tapak web dan cara menghuraikan dokumen HTML. Dengan memahami konsep asas ini, anda akan dapat memahami dengan lebih baik cara perangkak web berfungsi dan mula menulis sendiri. Sudah tentu, terdapat banyak teknik dan isu rumit yang terlibat dalam menulis perangkak web, tetapi kami berharap artikel ini membantu anda memulakan perjalanan penulisan perangkak web anda dengan baik.
Atas ialah kandungan terperinci Tutorial Asas Merangkak Web PHP: Menggunakan Perpustakaan cURL untuk Mengakses Laman Web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!