Jadual Kandungan
Apakah Selenium?
Persediaan sebelum pembangunan perangkak
Contoh mudah: Dapatkan tajuk halaman web
Contoh mudah: log masuk ke halaman web dan merangkak data
Ringkasan
Rumah pembangunan bahagian belakang tutorial php Pembangunan dan pelaksanaan crawler: PHP dan strategi praktikal Selenium

Pembangunan dan pelaksanaan crawler: PHP dan strategi praktikal Selenium

Jun 16, 2023 am 08:41 AM
php reptilia selenium

Dengan pembangunan Internet yang berterusan, semakin banyak data perlu diperolehi daripada halaman web Tidak seperti penyemakan imbas halaman web secara manual untuk membaca maklumat, teknologi perangkak boleh mendapatkan data secara automatik. Dalam teknologi perangkak, Selenium ialah alat ujian automatik yang boleh mensimulasikan pengguna yang beroperasi pada halaman web dan mendapatkan data pada halaman web. Artikel ini akan memperkenalkan cara menggunakan PHP dan Selenium untuk melaksanakan fungsi perangkak.

Apakah Selenium?

Selenium ialah alat ujian automatik yang boleh mensimulasikan semua operasi pengguna pada halaman web, seperti input, klik, tatal, dsb., dan juga boleh mendapatkan data pada halaman web. Selenium boleh menyokong berbilang penyemak imbas, seperti Chrome, Firefox, Edge, dll., dan boleh menggunakan bahasa yang berbeza untuk menulis skrip ujian. Dalam teknologi perangkak, Selenium boleh mensimulasikan pengguna yang mengendalikan halaman web dan merangkak data daripada halaman web.

Persediaan sebelum pembangunan perangkak

Sebelum menggunakan Selenium untuk pembangunan perangkak, anda perlu memasang pemacu penyemak imbas yang menyokong Selenium, seperti pemacu penyemak imbas Chrome. Anda boleh memuat turun versi terkini pemacu Chrome dari tapak web rasmi Selenium dan memasangnya.

Seterusnya, anda perlu memasang PHP dan sambungan yang berkaitan secara setempat, seperti php-webdriver. Anda boleh menggunakan Komposer untuk memasangnya, seperti yang ditunjukkan di bawah:

composer require php-webdriver/webdriver
Salin selepas log masuk

Contoh mudah: Dapatkan tajuk halaman web

Langkah pertama dalam menggunakan Selenium untuk pembangunan perangkak ialah membuka halaman web yang perlu merangkak data. Katakan kita perlu mendapatkan tajuk halaman web, kita boleh mengikuti langkah berikut:

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

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

// 启动Chrome浏览器
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create('http://localhost:9515', $capabilities);

// 打开需要抓取数据的网页
$driver->get('https://www.example.com');

// 获取网页标题
$title = $driver->getTitle();
echo $title;

// 关闭浏览器
$driver->quit();
Salin selepas log masuk

Analisis kod:

  1. Pertama, gunakan require_once untuk memperkenalkan perpustakaan kelas yang diperlukan fail.
  2. Gunakan DesiredCapabilities untuk mencipta pemacu penyemak imbas, dengan menyatakan penyemak imbas Chrome.
  3. Gunakan RemoteWebDriver::create untuk melancarkan penyemak imbas Chrome dan menyambung ke pelayan Selenium.
  4. Gunakan kaedah get untuk membuka halaman web yang perlu menangkap data.
  5. Gunakan kaedah getTitle untuk mendapatkan tajuk halaman.
  6. Keluarkan tajuk halaman.
  7. Akhir sekali, gunakan kaedah quit untuk menutup penyemak imbas Chrome.

Contoh mudah: log masuk ke halaman web dan merangkak data

Dalam pembangunan perangkak sebenar, kita mungkin perlu log masuk ke halaman web untuk mendapatkan data yang diperlukan. Berikut ialah contoh kod untuk log masuk ke tapak web dan merebut data:

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

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

// 启动Chrome浏览器
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create('http://localhost:9515', $capabilities);

// 打开登录页面
$driver->get('https://www.example.com/login');

// 输入账号密码并登录
$accountInput = $driver->findElement(WebDriverBy::id('account'));
$passwordInput = $driver->findElement(WebDriverBy::id('password'));
$submitButton = $driver->findElement(WebDriverBy::id('submit'));
$accountInput->sendKeys('your_username');
$passwordInput->sendKeys('your_password');
$submitButton->click();

// 等待登录成功并打开需要抓取数据的页面
$driver->wait(10)->until(
    WebDriverExpectedCondition::titleContains('Homepage')
);
$driver->get('https://www.example.com/data');

// 获取数据
$data = $driver->findElement(WebDriverBy::cssSelector('.data'))->getText();
echo $data;

// 关闭浏览器
$driver->quit();
Salin selepas log masuk

Analisis kod:

  1. Pertama, gunakan require_once untuk memperkenalkan fail perpustakaan kelas yang diperlukan.
  2. Gunakan DesiredCapabilities untuk mencipta pemacu penyemak imbas, dengan menyatakan penyemak imbas Chrome.
  3. Gunakan RemoteWebDriver::create untuk melancarkan penyemak imbas Chrome dan menyambung ke pelayan Selenium.
  4. Gunakan kaedah get untuk membuka halaman yang memerlukan log masuk.
  5. Gunakan kaedah findElement untuk mendapatkan objek WebElement yang sepadan melalui id elemen input akaun dan kata laluan, dan panggil kaedah sendKeys untuk menghantar kata laluan akaun untuk input.
  6. Gunakan kaedah findElement untuk mendapatkan objek WebElement yang sepadan melalui id butang serah dan panggil kaedah click untuk mengklik untuk melengkapkan operasi log masuk.
  7. Gunakan kaedah wait untuk menunggu tajuk selepas lompatan halaman mengandungi Homepage.
  8. Gunakan kaedah get untuk membuka halaman yang perlu menangkap data.
  9. Gunakan kaedah findElement untuk mendapatkan objek WebElement yang sepadan melalui pemilih CSS dan gunakan kaedah getText untuk mendapatkan kandungan teks.
  10. Keluarkan data yang diperoleh.
  11. Akhir sekali, gunakan kaedah quit untuk menutup penyemak imbas Chrome.

Di atas ialah kod sampel Dalam pembangunan sebenar, ia perlu diubah suai mengikut struktur halaman dan ID elemen tapak web tertentu.

Ringkasan

Artikel ini memperkenalkan cara menggunakan PHP dan Selenium untuk pembangunan perangkak, dan menyediakan contoh tunjuk cara daripada dua aspek: mendapatkan tajuk halaman web dan log masuk untuk merangkak data. Sebagai alat ujian automatik, Selenium boleh mensimulasikan operasi pengguna pada halaman web, memudahkan penangkapan data dalam halaman web, dan juga boleh digunakan dalam senario ujian automatik yang lain. Dengan menguasai penggunaan Selenium, anda boleh meningkatkan tahap teknikal dan kecekapan kerja anda.

Atas ialah kandungan terperinci Pembangunan dan pelaksanaan crawler: PHP dan strategi praktikal Selenium. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles