Rumah pembangunan bahagian belakang tutorial php Pengenalan kepada rangka kerja perangkak berdasarkan PHP dan penjelasan terperinci tentang contoh aplikasi

Pengenalan kepada rangka kerja perangkak berdasarkan PHP dan penjelasan terperinci tentang contoh aplikasi

Jun 14, 2023 pm 03:58 PM
php rangka kerja crawler Contoh aplikasi

Dengan pertumbuhan pesat maklumat Internet, sejumlah besar data disimpan di tapak web, yang sangat bernilai kepada ramai pengguna. Oleh itu, teknologi perangkak secara beransur-ansur menjadi cara yang berkuasa untuk menggunakan data Internet.

Artikel ini memperkenalkan rangka kerja perangkak berdasarkan bahasa PHP: Guzzle dan Goutte. Guzzle ialah klien HTTP yang dibangunkan untuk PHP yang boleh digunakan untuk menghantar permintaan HTTP dan berinteraksi dengan sumber REST. Goutte ialah pelengkapnya Ia adalah rangka kerja perangkak web berdasarkan Guzzle yang boleh mendapatkan kandungan web dengan mudah dan melakukan pengekstrakan dan analisis data.

Pertama, kita perlu memasang Guzzle dan Goutte dalam PHP. Ia boleh dipasang melalui Komposer Arahan khusus adalah seperti berikut:

composer require guzzlehttp/guzzle
composer require fabpot/goutte
Salin selepas log masuk

Selepas pemasangan selesai, mari kita pelajari dahulu cara menggunakan Guzzle. Kami boleh menghantar permintaan HTTP GET dan mendapatkan kandungan respons melalui kod berikut:

<?php
use GuzzleHttpClient;

$client = new Client();
$response = $client->get('https://www.example.com');
echo $response->getBody();
Salin selepas log masuk

Kod ini mula-mula mencipta objek GuzzleClient, dan kemudian menggunakan kaedah get() untuk menghantar permintaan GET ke URL yang ditentukan, dan Kandungan respons diperolehi. Panggil kaedah getBody() untuk mendapatkan kandungan badan tindak balas.

Goutte ialah rangka kerja perangkak web yang dibangunkan berdasarkan Guzzle, dan penggunaannya juga sangat mudah. Berikut ialah contoh mudah menggunakan Goutte:

<?php
use GoutteClient;

$client = new Client();
$crawler = $client->request('GET', 'https://www.example.com');
$crawler->filter('h1')->each(function ($node) {
    echo $node->text() . "
";
});
Salin selepas log masuk

Kod ini menggunakan Goutte untuk mencipta objek Klien, menghantar permintaan GET ke URL yang ditentukan, kemudian mendapatkan badan respons dan menghuraikannya ke dalam objek DOM . $crawler->filter('h1') ialah penapis yang menentukan semua nod teg h1 pada halaman, dan kemudian ia memanggil kaedah each() Untuk setiap nod teg h1, fungsi tanpa nama yang ditentukan akan dilaksanakan $node ialah objek nod semasa, dan kaedah text()nya boleh mendapatkan kandungan teks nod.

Mari lihat contoh yang lebih lengkap di bawah, yang menunjukkan cara menggunakan Goutte untuk merangkak soalan dan jawapan pada Zhihu, dan menyimpan nama pengguna, kandungan jawapan, bilangan suka dan masa menjawab ke Dalam fail CSV:

<?php
use GoutteClient;

$client = new Client();
$crawler = $client->request('GET', 'https://www.zhihu.com/question/21774949');
$fp = fopen('output.csv', 'w');
fputcsv($fp, ['User', 'Content', 'Votes', 'Time']);
$crawler->filter('.List-item')->each(function ($node) use ($fp) {
    $user = $node->filter('.AuthorInfo .Popover')->text();
    $content = $node->filter('.RichText')->text();
    $votes = $node->filter('.Voters')->text();
    $time = $node->filter('.ContentItem-time')->text();
    fputcsv($fp, [$user, $content, $votes, $time]);
});
fclose($fp);
Salin selepas log masuk

Kod ini mula-mula merangkak halaman dengan ID soalan 21774949 pada Zhihu, kemudian menggunakan pemegang fail untuk menulis baris pengepala CSV pada fail output.csv. Seterusnya, gunakan kaedah penapis() untuk mencari semua nod soalan dan jawapan pada halaman, dan kemudian laksanakan fungsi tanpa nama pada setiap nod. Dalam fungsi tanpa nama, gunakan kaedah penapis() untuk mencari nama setiap pengguna, kandungan jawapan, bilangan suka dan masa menjawab, dan gunakan kaedah fputcsv() untuk menulis empat medan ini pada fail. Akhir sekali tutup pemegang fail.

Ringkasnya, sangat mudah untuk menggunakan Guzzle dan Goutte untuk membina rangka kerja perangkak, dan ia mempunyai fleksibiliti dan kebolehskalaan yang kuat, serta boleh digunakan pada pelbagai senario berbeza, termasuk tetapi tidak terhad kepada perlombongan data , Pengoptimuman SEO dan bidang lain. Walau bagaimanapun, sila ambil perhatian bahawa mana-mana perangkak perlu mematuhi fail robots.txt tapak web untuk mengelakkan daripada meletakkan beban yang tidak wajar pada tapak web sasaran dan melanggar privasi pengguna.

Atas ialah kandungan terperinci Pengenalan kepada rangka kerja perangkak berdasarkan PHP dan penjelasan terperinci tentang contoh aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles