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
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();
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 . "
";
}
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}
";
$links = $driver->findElements(WebDriverBy::xpath('//div[@class="result c-container "]//h3[@class="t"]/a')); foreach ($links as $link) { $url = $link->getAttribute('href'); echo $url . "
";
} $nextPageElement = $driver->findElement(WebDriverBy::xpath('//a[@class="n" and contains(text(),"下一页>")]')); $driver->executeScript("arguments[0].scrollIntoView();", [$nextPageElement]); $nextPageElement->click(); }
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!