Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Buat perangkak web berasaskan PHP

Buat perangkak web berasaskan PHP

WBOY
WBOYasal
2023-05-11 12:10:35645semak imbas

Dengan perkembangan pesat Internet, pemerolehan dan penggunaan maklumat menjadi semakin penting. Perangkak web, sebagai program automatik, boleh membantu kami merangkak maklumat dengan cepat dari Internet dan memprosesnya, sekali gus meningkatkan kecekapan penggunaan maklumat. Dalam artikel ini, saya akan menerangkan cara membuat perangkak web mudah menggunakan PHP.

1. Pengetahuan asas perangkak web

Perangkak web ialah program automatik yang boleh mensimulasikan tingkah laku penyemakan imbas manusia pada halaman web dan menangkap maklumat yang berkaitan secara automatik pada halaman web. Perangkak web mempunyai banyak kegunaan, seperti rangkak enjin carian, perlombongan data, perbandingan harga dan pengagregatan kandungan.

Proses berjalan perangkak web adalah kira-kira seperti berikut:

  1. Tentukan alamat halaman web yang hendak dirangkak.
  2. Buat permintaan HTTP ke halaman web sasaran dan dapatkan respons.
  3. Ekstrak data yang diperlukan daripada respons.
  4. Proses dan simpan data.

Inti perangkak web adalah untuk menghuraikan dokumen HTML dan mengekstrak maklumat yang diperlukan. Dalam PHP, kita boleh menggunakan kelas DOMDocument atau kelas SimpleXMLElement untuk menghuraikan dokumen XML dan menggunakan ungkapan biasa atau fungsi rentetan untuk menghuraikan dokumen HTML.

2. Cipta perangkak Web berasaskan PHP

Di bawah ini kita akan menggunakan contoh praktikal untuk menggambarkan cara mencipta perangkak Web berasaskan PHP yang boleh merangkak kedudukan filem Douban Maklumat filem.

  1. Tentukan alamat halaman web yang hendak dirangkak

Sasaran yang ingin kita rangkai ialah kedudukan filem Douban, URLnya ialah: https://movie.douban.com / carta.

  1. Buat permintaan HTTP ke halaman web sasaran dan dapatkan respons

Dalam PHP, kami boleh menggunakan perpustakaan cURL untuk menghantar permintaan HTTP dan mendapatkan respons. cURL ialah perpustakaan rangkaian sumber terbuka yang menyokong berbilang protokol, seperti HTTP, FTP, SMTP, dsb.

Berikut ialah contoh penggunaan pustaka cURL untuk menghantar permintaan HTTP:

$url = "https://movie.douban.com/chart";
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$respons = curl_exec($ch);
curl_close($ch );

Dalam kod di atas, kami mula-mula mentakrifkan alamat halaman web $url untuk dirangkak dan menggunakan fungsi curl_init() untuk memulakan sesi cURL. Kemudian, gunakan fungsi curl_setopt() untuk menetapkan pilihan curl, seperti URL yang akan diminta, sama ada untuk mengembalikan respons, dsb. Akhir sekali, gunakan fungsi curl_exec() untuk menghantar permintaan HTTP, dapatkan respons dan gunakan fungsi curl_close() untuk menutup sesi cURL.

  1. Ekstrak data yang diperlukan daripada respons

Selepas mendapat respons, kami perlu mengekstrak maklumat filem yang diperlukan daripadanya. Dalam kedudukan filem Douban, setiap filem mempunyai ID unik dan kami boleh mendapatkan maklumat terperinci tentang setiap filem berdasarkan ID ini.

Berikut ialah contoh penggunaan ungkapan biasa untuk mengekstrak ID filem:

$pattern = '/ce47a1571fbc4e91103bbda1e91edcf6.?(. ?)/s';
preg_match_all($pattern, $response, $matches);

Dalam kod di atas, kami mentakrifkan ungkapan biasa $pattern untuk memadankan ID Filem dan nama filem. Gunakan fungsi preg_match_all() untuk memadankan respons dan menyimpan semua hasil yang sepadan dalam tatasusunan $matches.

Seterusnya, kita boleh menggunakan ID filem yang diperoleh sebelum ini untuk mendapatkan maklumat terperinci setiap filem. Di sini, kami menggunakan kelas SimpleXMLElement untuk menghuraikan dokumen XML dan mengekstrak maklumat filem. Berikut ialah contoh untuk mengekstrak maklumat filem:

foreach ($match[1] sebagai $url) {

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($response);
echo "电影名称:" . $xml->xpath('//title')[0] . "

";

echo "导演:" . $xml->xpath('//a[@rel="v:directedBy"]/text()')[0] . "

";

echo "主演:" . implode(", ", $xml->xpath('//a[@rel="v:starring"]/text()')) . "

";

echo "评分:" . $xml->xpath('//strong[@class="ll rating_num"]/text()')[0] . "

";
}

Dalam kod di atas, kami menggelungkan ID setiap filem dan mendapatkan butiran setiap filem menggunakan perpustakaan cURL. Kemudian, gunakan kelas SimpleXMLElement untuk menghuraikan dokumen XML dan mengekstrak maklumat seperti nama filem, pengarah, peranan dibintangi dan penilaian.

  1. Memproses dan menyimpan data

Akhir sekali, kami boleh memproses dan menyimpan maklumat filem yang diekstrak. Di sini, kami menggunakan pernyataan gema untuk mengeluarkan hasil ke tetingkap baris arahan.

Jika anda ingin menyimpan data ke dalam pangkalan data, anda boleh menggunakan sambungan PDO atau mysqli untuk menyambung ke pangkalan data dan memasukkan data ke dalam jadual yang sepadan.

3. Ringkasan

Perangkak web ialah program automatik yang biasa digunakan yang boleh membantu kami mendapatkan maklumat dengan cepat daripada Internet dan melakukan pemprosesan selanjutnya. Dalam PHP, kita boleh menggunakan perpustakaan cURL untuk menghantar permintaan HTTP, menggunakan kelas DOMDocument atau kelas SimpleXMLElement untuk menghuraikan dokumen XML atau ungkapan biasa untuk memadankan dokumen HTML, dengan itu merealisasikan pembangunan perangkak web. Saya harap artikel ini akan membantu anda memahami pengetahuan asas perangkak web dan menggunakan PHP untuk mencipta perangkak web.

Atas ialah kandungan terperinci Buat perangkak web berasaskan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn