


Pembangunan dan pelaksanaan crawler: PHP dan strategi praktikal 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
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();
Analisis kod:
- Pertama, gunakan
require_once
untuk memperkenalkan perpustakaan kelas yang diperlukan fail. - Gunakan
DesiredCapabilities
untuk mencipta pemacu penyemak imbas, dengan menyatakan penyemak imbas Chrome. - Gunakan
RemoteWebDriver::create
untuk melancarkan penyemak imbas Chrome dan menyambung ke pelayan Selenium. - Gunakan kaedah
get
untuk membuka halaman web yang perlu menangkap data. - Gunakan kaedah
getTitle
untuk mendapatkan tajuk halaman. - Keluarkan tajuk halaman.
- 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();
Analisis kod:
- Pertama, gunakan
require_once
untuk memperkenalkan fail perpustakaan kelas yang diperlukan. - Gunakan
DesiredCapabilities
untuk mencipta pemacu penyemak imbas, dengan menyatakan penyemak imbas Chrome. - Gunakan
RemoteWebDriver::create
untuk melancarkan penyemak imbas Chrome dan menyambung ke pelayan Selenium. - Gunakan kaedah
get
untuk membuka halaman yang memerlukan log masuk. - Gunakan kaedah
findElement
untuk mendapatkan objek WebElement yang sepadan melalui id elemen input akaun dan kata laluan, dan panggil kaedahsendKeys
untuk menghantar kata laluan akaun untuk input. - Gunakan kaedah
findElement
untuk mendapatkan objek WebElement yang sepadan melalui id butang serah dan panggil kaedahclick
untuk mengklik untuk melengkapkan operasi log masuk. - Gunakan kaedah
wait
untuk menunggu tajuk selepas lompatan halaman mengandungiHomepage
. - Gunakan kaedah
get
untuk membuka halaman yang perlu menangkap data. - Gunakan kaedah
findElement
untuk mendapatkan objek WebElement yang sepadan melalui pemilih CSS dan gunakan kaedahgetText
untuk mendapatkan kandungan teks. - Keluarkan data yang diperoleh.
- 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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

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

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

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,

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

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

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 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.
