Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cipta perangkak web yang pantas dan cekap: contoh PHP dan Selenium

Cipta perangkak web yang pantas dan cekap: contoh PHP dan Selenium

WBOY
WBOYasal
2023-06-15 16:10:521515semak imbas

Dengan perkembangan berterusan Internet, merangkak data telah menjadi kemahiran penting bagi ramai orang. Perangkak web adalah salah satu alat penting untuk merangkak data.

Perangkak web boleh mengakses tapak web secara automatik, mengambil kandungan, menganalisis halaman dan mengekstrak data yang diperlukan. Antaranya, Selenium ialah alat ujian automasi rangkaian yang sangat baik yang boleh mensimulasikan operasi pengguna sebenar dan sangat membantu untuk membina perangkak web.

Artikel ini akan memperkenalkan cara menggunakan PHP dan Selenium untuk mencipta perangkak web yang pantas dan cekap Sebelum melakukan ini, kita perlu memahami beberapa pengetahuan asas.

1. Persekitaran pemasangan

Sebelum anda mula, anda perlu memasang PHP dan Selenium.

1. Pasang PHP

Dalam persekitaran Windows, anda boleh memuat turun dan memasang pakej perisian XAMPP atau WAMP, dan pengguna Mac boleh memasang pakej perisian MAMP.

Dalam persekitaran Linux, anda boleh memasang PHP melalui baris arahan Contohnya, pada sistem Ubuntu, anda boleh memasangnya melalui arahan berikut:

sudo apt-get install php7.0<.>

Perlu diingat bahawa semasa memasang PHP, anda perlu mengesahkan bahawa beberapa sambungan yang diperlukan telah dipasang, seperti: php-curl. Anda boleh mengesahkan sama ada sambungan telah dipasang dengan menjalankan arahan berikut:

php -m | grep curl

Jika tiada sambungan curl, anda perlu memasangnya secara manual.

2. Pasang Selenium

Sebelum memasang Selenium, anda perlu memasang Java Runtime Environment (JRE).

Selenium Server Standalone Edition boleh dimuat turun dari tapak web rasmi Selenium (https://www.selenium.dev/downloads/).

Anda boleh menggunakan arahan berikut untuk memulakan pelayan Selenium:

java -jar selenium-server-standalone-3.xx.x.jar

2 rangkaian menggunakan Selenium dan PHP Crawler

Sebelum anda mula membina perangkak web, anda perlu memahami beberapa konsep asas:

    WebDriver
WebDriver ialah komponen teras dalam Selenium yang boleh Digunakan untuk mengawal tingkah laku pelayar. Menggunakan WebDriver, kami boleh membuka dan menutup pelayar secara automatik dan mensimulasikan gelagat operasi pengguna.

    Locator
Locator digunakan untuk mencari elemen pada halaman HTML. Kaedah penentududukan yang biasa digunakan dalam Selenium termasuk id, nama, kelas, tagname, css, xpath, dsb.

    Tindakan
Tindakan merujuk kepada tindakan pengguna tertentu dalam penyemak imbas, seperti mengklik, memasukkan teks, melayang tetikus, dsb.

Dalam contoh ini, kami akan mencipta perangkak web menggunakan alat ujian automatik Selenium WebDriver dan bahasa pengaturcaraan PHP. Mengambil Baidu (https://www.baidu.com) sebagai contoh, kami akan mencari kata kunci dan merangkak pautan hasil carian.

Pertama, anda perlu menggunakan Composer untuk memasang Selenium WebDriver dan PHP WebDriver dalam projek PHP anda.

    Konfigurasikan Komposer
Sebelum mencipta projek PHP, anda perlu memasang Komposer (https://getcomposer.org/) dan mencipta projek PHP baharu melalui arahan barisan .

Dalam folder projek, anda boleh memasang Selenium WebDriver dan PHP WebDriver menggunakan arahan berikut:

komposer memerlukan facebook/webdriver

    Tulis kod
Buat fail baharu crawl.php dalam folder projek, edit kod seperti berikut:

<?php
require_once('vendor/autoload.php');

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;
use FacebookWebDriverWebDriverKeys;

// 设置WebDriver
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);

// 打开百度
$driver->get('https://www.baidu.com');

// 搜索关键字
$search_box = $driver->findElement(WebDriverBy::id('kw'));
$search_box->sendKeys('Selenium');
$search_box->sendKeys(WebDriverKeys::ENTER);

// 等待页面加载完成
sleep(5);

// 抓取搜索结果链接
$elements = $driver->findElements(WebDriverBy::xpath('//div/h3/a'));
foreach ($elements as $element) {
    echo $element->getAttribute('href')."
";
}

// 关闭浏览器
$driver->quit();
?>

Pertama, kita perlu menyediakan pemacu web, termasuk penyemak imbas yang digunakan (pelayar Chrome digunakan di sini ) dan alamat perkhidmatan WebDriver.

Seterusnya, gunakan WebDriver untuk membuka halaman utama Baidu. Kami akan menemui kotak carian Baidu mengikut id, masukkan kata kunci Selenium dan tekan Enter untuk menyerahkan carian. Selepas itu, tunggu halaman dimuatkan dan dapatkan pautan ke semua hasil carian.

Akhir sekali, tutup penyemak imbas.

    Jalankan kod
Laksanakan arahan berikut dalam baris arahan untuk menjalankan crawl.php dan merangkak pautan hasil carian:

php crawl . php

3. Ringkasan

Melalui pengenalan artikel ini, anda boleh mempelajari cara menggunakan PHP dan Selenium untuk membina perangkak web yang ringkas. Selenium WebDriver boleh digunakan untuk mensimulasikan operasi pengguna, dengan itu mencapai hasil rangkak web yang lebih baik. Dalam aplikasi praktikal, kami boleh menggunakan kaedah penentududukan yang berbeza dan menyesuaikan gelagat operasi mengikut keperluan untuk mencapai rangkak data yang lebih tepat dan cekap.

Nota: Contoh ini adalah untuk rujukan pembelajaran sahaja dan dilarang untuk tujuan yang menyalahi undang-undang.

Atas ialah kandungan terperinci Cipta perangkak web yang pantas dan cekap: contoh PHP dan Selenium. 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