Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHPQuery untuk merangkak halaman web dalam PHP

Cara menggunakan PHPQuery untuk merangkak halaman web dalam PHP

WBOY
WBOYasal
2023-06-27 15:36:251996semak imbas

Dalam era ledakan maklumat hari ini, perangkak web telah menjadi kaedah teknikal yang sangat biasa dalam bidang Internet. Sebagai salah satu bahasa yang digunakan secara meluas dalam pembangunan Internet, PHP mempunyai banyak cara untuk melaksanakan rangkak web. Antaranya, PHPQuery ialah perpustakaan PHP yang sangat praktikal yang boleh dengan cepat dan mudah melaksanakan rangkak web, pengekstrakan data dan tugas lain. Artikel ini akan memperkenalkan penggunaan PHPQuery dan kes aplikasi untuk membantu pembaca menguasai teknologi ini dengan lebih baik.

1. Pengenalan kepada PHPQuery

PHPQuery ialah perpustakaan kelas PHP sumber terbuka Ia berdasarkan sintaks jQuery dan membolehkan pembangun PHP menggunakan pemilih CSS untuk mengendalikan dokumen HTML dan XML, seperti sebagai mendapatkan Elemen, melintasi, mengubah suai atribut elemen, menambah, memadam, menyalin elemen, dsb. Penggunaan pustaka PHPQuery tidak memerlukan kebergantungan atau sambungan luaran Anda hanya perlu menggunakan API Teras untuk menyelesaikan rangkak web dan operasi lain.

2. Pemasangan PHPQuery

Versi terbaharu PHPQuery boleh dimuat turun di GitHub. Untuk memasang PHPQuery cuma muat turun fail zip dan ekstrak ke folder projek anda. Kod sampel:

require_once 'phpquery/phpQuery/phpQuery.php';

3. Penggunaan PHPQuery

1. Muatkan dokumen HTML

Gunakan kaedah phpQuery::newDocumentHTML() untuk memuatkan dokumen HTML ke dalam objek phpQuery, dan anda boleh memasukkan parameter kedua untuk menentukan parsing Pengekodan aksara dokumen.

$html = '<html><head><title>PHPQuery Test</title></head><body><h1>Hello PHPQuery!</h1></body></html>';
$doc = phpQuery::newDocumentHTML($html, 'utf-8');

2. Gunakan pemilih CSS untuk mendapatkan elemen

Dengan menggunakan pemilih CSS, anda boleh mendapatkan semua elemen yang memenuhi keperluan dalam halaman web dan mengeditnya dalam objek phpQuery.

//获取HTML文档中的h1元素
$h1 = $doc->find('h1');

3 Dapatkan dan ubah suai atribut elemen

phpQuery menyediakan kaedah attr() dan removeAttr() untuk mendapatkan dan mengalih keluar atribut elemen, dan juga menyokong penggunaan kaedah addAttr() dan attr() untuk menambah dan mengubah suai atribut elemen. .

//获取元素的title属性
$title = $h1->attr('title');
//设置元素的title属性
$h1->attr('title', 'PHPQuery Test');
//移除元素的title属性
$h1->removeAttr('title');

4. Lintas dan salin elemen

phpQuery juga menyediakan setiap() kaedah untuk melintasi elemen padanan dan kaedah klon() untuk menyalin elemen.

//遍历所有h5元素
$h5 = $doc->find('h5');
$h5->each(function($index, $element) {
    echo $element->tagName . '<br>';
});
//复制元素
$h6 = $h5->clone();

5. Contoh web crawling

Dengan menggunakan kaedah di atas, kita boleh melaksanakan web crawling dengan mudah. Sebagai contoh, kami ingin merangkak imej logo pada halaman utama Baidu. Kita boleh menggunakan kaedah find() sekali lagi untuk mendapatkan elemen imej Logo, dan menggunakan kaedah attr() untuk mendapatkan alamat pautan imej, dan akhirnya menggunakan fungsi file_gets_content() untuk memuat turun imej. Kod khusus adalah seperti berikut:

//载入百度首页
$html = file_get_contents('https://www.baidu.com');
$doc = phpQuery::newDocumentHTML($html);
//获取百度首页Logo图片链接地址
$img_url = $doc->find('#lg img')->attr('src');
//通过file_get_contents()函数获取图片内容并保存到本地
$img_content = file_get_contents($img_url);
file_put_contents('baidu_logo.jpeg', $img_content);

4. Kesimpulan

PHPQuery ialah perpustakaan kelas PHP yang mudah, pantas dan berkuasa yang boleh memberikan bantuan yang hebat untuk rangkak web kami, pengekstrakan data dan kerja lain. Kandungan di atas hanyalah pengenalan ringkas kepada PHPQuery Pembaca boleh menguasai teknologi ini dengan lebih baik melalui kajian dan amalan yang lebih mendalam. Pada masa yang sama, apabila merangkak halaman web, anda harus menghormati hak cipta dan peraturan rangkak tapak web untuk mengelakkan risiko dan liabiliti undang-undang yang disebabkan oleh rangkak haram atau penggunaan tidak wajar.

Atas ialah kandungan terperinci Cara menggunakan PHPQuery untuk merangkak halaman web dalam 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