Kemahiran penting untuk perangkak automatik: pengenalan kepada penggunaan PHP dan Selenium

王林
Lepaskan: 2023-06-16 06:12:02
asal
2013 orang telah melayarinya

Dalam era digital hari ini, merangkak data daripada Internet telah menjadi keperluan biasa. Untuk pengumpulan dan analisis data berskala besar, penggunaan perangkak automatik sangat diperlukan. Selenium ialah alat yang digunakan secara meluas untuk ujian dan automasi web, manakala PHP ialah bahasa pengaturcaraan web yang popular. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP dan Selenium untuk melaksanakan perangkak automatik dan merangkak data yang diperlukan.

1. Pasang Selenium dan WebDriver

Sebelum menggunakan Selenium, anda perlu memuat turun Selenium. Ia boleh dipasang melalui:

composer require php-webdriver/webdriver
Salin selepas log masuk

Dengan cara ini anda boleh berjaya memuat turun pemacu web dan menggunakannya dalam kod anda. Seterusnya, kita perlu memasang pemacu web penyemak imbas, seperti pemacu web Chrome supaya program boleh memanggilnya. Anda boleh memuat turun versi pemacu web yang sepadan dari tapak web rasmi Chrome.

2. Penggunaan asas Selenium

Selepas memasang Selenium dan pemacu web, kami boleh menggunakannya untuk mengendalikan penyemak imbas secara automatik. Berikut ialah contoh kod ringkas:

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get('http://www.google.com');
$element = $driver->findElement(WebDriverBy::name('q'));
$element->sendKeys('Selenium');
$element->submit();
echo $driver->getTitle();
Salin selepas log masuk

Coretan kod ini mula-mula mencipta objek pemacu web jauh dan bersambung ke penyemak imbas Chrome setempat. Ia kemudian membuka Google, memasuki "Selenium" dan melakukan carian. Akhirnya, tajuk halaman penyemak imbas adalah output.

3. Gunakan Selenium untuk merangkak

Dengan pengetahuan asas tentang Selenium, kita boleh mula menggunakannya untuk membina perangkak automatik. Berikut ialah contoh kod ringkas yang boleh merangkak semua pautan dalam halaman web tertentu:

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get('https://www.example.com');

$links = $driver->findElements(WebDriverBy::tagName('a'));

foreach ($links as $link) {
    $url = $link->getAttribute('href');
    echo $url . "
Salin selepas log masuk

";

}
Salin selepas log masuk

Coretan kod ini menggunakan Selenium untuk mengakses tapak web dan mendapatkan tapak web Semua pautan dalam . Dapatkan nilai atribut href dengan merentasi setiap pautan dan memanggil fungsi getAttribute('href'), dan akhirnya keluarkan semua pautan yang ditemui

4. Laksanakan perangkak automatik dengan PHP

Di atas contoh kod menggunakan kod Selenium yang dilaksanakan dalam PHP Dengan menggabungkan Selenium dan PHP, kami boleh melaksanakan perangkak automatik yang lengkap Berikut ialah contoh kod yang menggunakan teknologi halaman untuk merangkak 10 halaman pertama:

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get('https://www.baidu.com/s?wd=php');

$pageNumber = 10;

for ($i = 1; $i <= $pageNumber; $i++) {
     echo "page {$i}
Salin selepas log masuk

";

     $links = $driver->findElements(WebDriverBy::xpath('//div[@class="result c-container "]//h3[@class="t"]/a'));

     foreach ($links as $link) {
         $url = $link->getAttribute('href');
         echo $url . "
Salin selepas log masuk

";

     }

     $nextPageElement = $driver->findElement(WebDriverBy::xpath('//a[@class="n" and contains(text(),"下一页>")]'));

     $driver->executeScript("arguments[0].scrollIntoView();", [$nextPageElement]);

     $nextPageElement->click();
 }
Salin selepas log masuk

Coretan kod di atas mula-mula membuka halaman hasil carian Baidu, dan kemudian melelang melalui semua carian pada setiap halaman Akibatnya, alamat pautan setiap carian hasil adalah output. Selepas melintasi halaman, ia akan menatal ke bahagian bawah halaman dan klik butang halaman seterusnya untuk meneruskan merangkak lebih banyak pautan. bina perangkak automatik ialah cara yang sangat berkesan Selenium menyediakan banyak ciri teras yang diperlukan untuk membina perangkak automatik, manakala PHP menyediakan cara yang pantas, mudah dan mudah untuk mencapai automasi, kita boleh menggunakan automatik perangkak untuk mengumpul data yang kami perlukan dengan cepat dan cekap

.

Atas ialah kandungan terperinci Kemahiran penting untuk perangkak automatik: pengenalan kepada penggunaan PHP dan Selenium. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan