Berkongsi petua tentang menggunakan PHP dan phpSpider untuk merangkak sejumlah besar data dalam kelompok!
Dengan perkembangan pesat Internet, data besar-besaran telah menjadi salah satu sumber terpenting dalam era maklumat. Bagi kebanyakan tapak web dan aplikasi, merangkak dan mendapatkan data ini adalah penting. Dalam artikel ini, kami akan memperkenalkan cara menggunakan alat PHP dan phpSpider untuk mencapai kumpulan merangkak data besar-besaran, dan menyediakan beberapa contoh kod untuk membantu anda bermula.
Pasang dan konfigurasikan phpSpider
Mula-mula, kita perlu memasang php dan komposer, dan kemudian memasang phpSpider melalui komposer. Buka terminal dan laksanakan arahan berikut:
composer require duskowl/php-spider
Selepas pemasangan selesai, kita boleh menggunakan arahan berikut dalam direktori projek untuk menjana skrip perangkak baharu:
vendor/bin/spider create mySpider
Ini akan menjana fail bernama mySpider.php dalam semasa direktori, Kami boleh menulis logik perangkak kami di dalamnya.
Pertama, kita perlu menentukan URL permulaan untuk dirangkak dan item data untuk diekstrak. Dalam mySpider.php, cari constructor __construct() dan tambah kod berikut:
public function __construct() { $this->startUrls = [ 'http://example.com/page1', 'http://example.com/page2', 'http://example.com/page3', ]; $this->setField('title', 'xpath', '//h1'); // 抽取页面标题 $this->setField('content', 'xpath', '//div[@class="content"]'); // 抽取页面内容 }
Dalam tatasusunan startUrls, kita boleh menentukan URL permulaan untuk merangkak. URL ini boleh menjadi satu halaman atau senarai berbilang halaman. Dengan menetapkan fungsi setField(), kita boleh menentukan item data yang akan diekstrak dan kita boleh menggunakan xpath atau ungkapan biasa untuk mencari elemen halaman.
Seterusnya, kita perlu menulis fungsi panggil balik untuk memproses data yang dirangkak. Cari fungsi handle() dan tambah kod berikut:
public function handle($spider, $page) { $data = $page['data']; $url = $page['request']['url']; echo "URL: $url "; echo "Title: " . $data['title'] . " "; echo "Content: " . $data['content'] . " "; }
Dalam fungsi panggil balik ini, kita boleh menggunakan pembolehubah $page untuk mendapatkan data halaman yang dirangkak. Tatasusunan $data mengandungi item data yang diekstrak yang kami takrifkan dan pembolehubah $url menyimpan URL halaman semasa. Dalam contoh ini, kami hanya mencetak data ke terminal, anda boleh menyimpannya ke pangkalan data atau fail mengikut keperluan.
Jalankan perangkak
Selepas menulis logik perangkak, kita boleh melaksanakan arahan berikut dalam terminal untuk menjalankan perangkak:
vendor/bin/spider run mySpider
Ini akan mula merangkak dan memproses halaman secara automatik, dan mengeluarkan hasilnya ke terminal.
5.1 Merangkak serentak
Untuk senario yang memerlukan jumlah merangkak yang banyak, kita boleh menetapkan bilangan merangkak serentak untuk mempercepatkan merangkak. Dalam fail mySpider.php, cari fungsi __construct() dan tambah kod berikut:
function __construct() { $this->concurrency = 5; // 设置并发数 }
Tetapkan pembolehubah serentak kepada konkurensi yang anda inginkan untuk mengawal bilangan permintaan rangkak serentak.
5.2 Merangkak berjadual
Jika kita perlu merangkak data dengan kerap, kita boleh menggunakan fungsi tugas berjadual yang disediakan oleh phpSpider. Mula-mula, kita perlu menetapkan fungsi startRequest() dalam fail mySpider.php, contohnya:
public function startRequest() { $this->addRequest("http://example.com/page1"); $this->addRequest("http://example.com/page2"); $this->addRequest("http://example.com/page3"); }
Kemudian, kita boleh melaksanakan arahan berikut dalam terminal untuk menjalankan perangkak dengan kerap:
chmod +x mySpider.php ./mySpider.php
Ini akan menjadikan perangkak berjalan sebagai tugas yang dijadualkan, Dan merangkak mengikut selang masa yang ditetapkan.
Atas ialah kandungan terperinci Berkongsi petua tentang cara merangkak sejumlah besar data dalam kelompok dengan PHP dan phpSpider!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!