Rumah pembangunan bahagian belakang tutorial php Panduan praktikal untuk perangkak web automatik: membina perangkak web dengan PHP dan Selenium

Panduan praktikal untuk perangkak web automatik: membina perangkak web dengan PHP dan Selenium

Jun 15, 2023 pm 04:44 PM
perangkak web automasi php+selenium

Perangkak web telah menjadi salah satu alat yang paling penting dalam dunia Internet hari ini Mereka boleh menyemak imbas pelbagai tapak web secara automatik di Internet dan mengekstrak maklumat berguna yang diperlukan oleh orang ramai. Teknologi teras perangkak web automatik adalah menggunakan bahasa pengaturcaraan dan pelbagai alat untuk membina program yang boleh memproses data secara automatik.

Dalam beberapa tahun kebelakangan ini, Selenium telah menjadi salah satu alat yang paling popular dalam bidang merangkak web automatik. Ia ialah alat ujian automatik merentas pelayar yang boleh mensimulasikan pengguna yang melakukan pelbagai operasi dalam penyemak imbas, seperti mengklik, menatal, menaip, dsb., dan juga boleh mendapatkan data daripada halaman web. Ini menjadikan Selenium sesuai untuk membina perangkak web automatik, kerana ia membolehkan program mendapatkan data dengan cara yang sama seperti pengguna biasa.

Artikel ini akan memperkenalkan cara membina perangkak web automatik menggunakan PHP dan Selenium. Program perangkak yang diperkenalkan dalam artikel ini akan menyemak imbas tapak web yang ditentukan secara automatik dan mengeluarkan maklumat yang berkaitan seperti tajuk, pengarang, tarikh penerbitan dan pautan artikel semua artikel, dan akhirnya menyimpannya ke fail CSV.

Sebelum kita mula, kita perlu memasang PHP, Selenium dan WebDriver (sepadan dengan pemacu penyemak imbas). Berikut ialah butiran artikel ini:

  1. Tetapan persekitaran dan konfigurasi asas

Pertama, kita perlu memasang PHP dalam persekitaran setempat. PHP 7 atau lebih tinggi adalah disyorkan. Seterusnya, untuk memasang Selenium, anda boleh melakukannya menggunakan Komposer. Gunakan arahan komposer dalam folder projek untuk memasangnya Selepas pemasangan berjaya, kita boleh mula menulis program PHP.

  1. Panggil WebDriver dan Selenium API

Sebelum menggunakan Selenium untuk membina perangkak web automatik, kami perlu memanggil WebDriver dan mencipta contoh WebDriver untuk berkomunikasi dengan penyemak imbas yang ditentukan. WebDriver ialah antara muka pemacu penyemak imbas, dan penyemak imbas yang berbeza memerlukan WebDriver yang berbeza.

Dalam PHP, kami boleh menggunakan perpustakaan klien PHP Selenium untuk mencipta tika WebDriver dan mengikatnya dengan WebDriver penyemak imbas yang ditentukan. Berikut ialah contoh kod:

require_once 'vendor/autoload.php';
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

// 配置浏览器类型、路径、驱动、和端口
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
Salin selepas log masuk
  1. Mewujudkan sesi penyemak imbas dan membuka tapak web sasaran

Mencipta sesi penyemak imbas hanya memerlukan satu baris kod, dan kita boleh memilih penyemak imbas kegemaran kami ( Firefox atau Chrome).

Di sini kita akan menggunakan penyemak imbas Chrome. Berikut ialah kod contoh:

// 使用Chrome浏览器打开目标网站
$driver->get('https://example.com');
Salin selepas log masuk
  1. Cari dan ekstrak data

Selepas membuka tapak web sasaran dan memuatkan halaman, kami perlu mencari dan mendapatkan elemen yang diperlukan data. Dalam contoh ini, kami akan menemui tajuk, pengarang, tarikh penerbitan dan pautan artikel semua artikel dalam tapak web sasaran.

Berikut ialah contoh kod:

// 查找所有文章标题
$titles = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article h2 a'));

// 查找作者名字
$author_names = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article .author-name'));

// 查找发布日期
$release_dates = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article .release-date'));

// 查找文章链接
$links = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article h2 a'));
Salin selepas log masuk

Berikut ialah contoh kod untuk mencari dan mengekstrak data bagi setiap artikel:

$articles = array();

foreach ($titles as $key => $title) {
    // 提取标题
    $article_title = $title->getText();

    // 提取作者
    $article_author = $author_names[$key]->getText();

    // 提取发布日期
    $article_date = $release_dates[$key]->getText();

    // 提取文章链接
    $article_link = $links[$key]->getAttribute('href');

    // 添加文章到数组
    $articles[] = array(
        'title' => $article_title,
        'author' => $article_author,
        'date' => $article_date,
        'link' => $article_link
    );
}
Salin selepas log masuk
  1. Hasilnya disimpan ke fail CSV

Langkah terakhir ialah menyimpan data yang diekstrak ke fail CSV. Data boleh disimpan ke dalam fail CSV menggunakan fungsi terbina dalam PHP fputcsv().

Berikut ialah kod sampel:

// 文件流方式打开文件
$file = fopen('articles.csv', 'w');

// 表头
$header = array('Title', 'Author', 'Date', 'Link');

// 写入标题
fputcsv($file, $header);

// 写入文章数据
foreach ($articles as $article) {
    fputcsv($file, $article);
}

// 关闭文件流
fclose($file);
Salin selepas log masuk

Ini menamatkan pengekstrakan kandungan dan pemprosesan data. Data dalam fail CSV boleh digunakan untuk analisis dan aplikasi seterusnya. Di samping itu, data boleh diimport ke pangkalan data lain untuk pemprosesan selanjutnya.

Ringkasnya, dalam artikel ini, kami telah mempelajari cara membina perangkak web automatik menggunakan PHP dan Selenium, dan cara mendapatkan serta memproses data tapak web sasaran dan menyimpannya ke dalam fail CSV. Contoh ini hanyalah demonstrasi mudah, yang boleh digunakan untuk pelbagai senario di mana data perlu diperoleh daripada laman web, seperti SEO, analisis produk kompetitif, dll.

Atas ialah kandungan terperinci Panduan praktikal untuk perangkak web automatik: membina perangkak web dengan PHP dan 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Bagaimana untuk menyelesaikan masalah redundansi kod dalam pembangunan C++ Bagaimana untuk menyelesaikan masalah redundansi kod dalam pembangunan C++ Aug 22, 2023 pm 05:30 PM

Bagaimana untuk menyelesaikan masalah redundansi kod dalam pembangunan C++ Redundansi kod bermakna apabila menulis program, terdapat kod yang serupa atau berulang di beberapa tempat. Masalah ini bukan sahaja menjadikan kod sukar untuk dikekalkan dan dibaca, tetapi juga meningkatkan saiz dan kerumitan kod. Bagi pembangun C++, adalah amat penting untuk menyelesaikan masalah redundansi kod, kerana C++ ialah bahasa pengaturcaraan yang berkuasa, tetapi ia juga boleh membawa kepada pertindihan kod dengan mudah. Punca masalah lebihan kod terletak pada reka bentuk dan tabiat pengekodan yang tidak munasabah. Untuk menyelesaikan masalah ini, anda boleh bermula dari aspek berikut: Gunakan fungsi dan kelas: C

Fahami perbezaan dan perbandingan antara SpringBoot dan SpringMVC Fahami perbezaan dan perbandingan antara SpringBoot dan SpringMVC Dec 29, 2023 am 09:20 AM

Bandingkan SpringBoot dan SpringMVC dan fahami perbezaannya Dengan pembangunan Java yang berterusan, rangka kerja Spring telah menjadi pilihan pertama bagi banyak pembangun dan perusahaan. Dalam ekosistem Spring, SpringBoot dan SpringMVC ialah dua komponen yang sangat penting. Walaupun kedua-duanya adalah berdasarkan rangka kerja Spring, terdapat beberapa perbezaan dalam fungsi dan penggunaan. Artikel ini akan menumpukan pada membandingkan SpringBoot dan Spring

Jenkins dalam PHP Integrasi Berterusan: Sarjana Automasi Binaan dan Penerapan Jenkins dalam PHP Integrasi Berterusan: Sarjana Automasi Binaan dan Penerapan Feb 19, 2024 pm 06:51 PM

Dalam pembangunan perisian moden, integrasi berterusan (CI) telah menjadi amalan penting untuk meningkatkan kualiti kod dan kecekapan pembangunan. Antaranya, Jenkins ialah alat CI sumber terbuka yang matang dan berkuasa, terutamanya sesuai untuk aplikasi PHP. Kandungan berikut akan menyelidiki cara menggunakan Jenkins untuk melaksanakan penyepaduan berterusan PHP, dan menyediakan kod sampel khusus dan langkah terperinci. Pemasangan dan konfigurasi Jenkins Pertama, Jenkins perlu dipasang pada pelayan. Hanya muat turun dan pasang versi terkini dari laman web rasminya. Selepas pemasangan selesai, beberapa konfigurasi asas diperlukan, termasuk menyediakan akaun pentadbir, pemasangan pemalam dan konfigurasi kerja. Cipta kerja baharu Pada papan pemuka Jenkins, klik butang "Kerja Baharu". Pilih "Bebaskan

Cara membina aplikasi perangkak web yang berkuasa menggunakan React dan Python Cara membina aplikasi perangkak web yang berkuasa menggunakan React dan Python Sep 26, 2023 pm 01:04 PM

Cara membina aplikasi perangkak web yang berkuasa menggunakan React dan Python Pengenalan: Perangkak web ialah program automatik yang digunakan untuk merangkak data web melalui Internet. Dengan pembangunan berterusan Internet dan pertumbuhan data yang pesat, perangkak web menjadi semakin popular. Artikel ini akan memperkenalkan cara menggunakan React dan Python, dua teknologi popular, untuk membina aplikasi perangkak web yang berkuasa. Kami akan meneroka kelebihan React sebagai rangka kerja hadapan dan Python sebagai enjin perangkak, dan memberikan contoh kod khusus. 1. Untuk

Gunakan skrip Python untuk melaksanakan penjadualan tugas dan automasi di bawah platform Linux Gunakan skrip Python untuk melaksanakan penjadualan tugas dan automasi di bawah platform Linux Oct 05, 2023 am 10:51 AM

Menggunakan skrip Python untuk melaksanakan penjadualan tugas dan automasi di bawah platform Linux Dalam persekitaran teknologi maklumat moden, penjadualan tugas dan automasi telah menjadi alat penting untuk kebanyakan perusahaan. Sebagai bahasa pengaturcaraan yang ringkas, mudah dipelajari dan kaya dengan ciri, Python sangat mudah dan cekap untuk melaksanakan penjadualan tugas dan automasi pada platform Linux. Python menyediakan pelbagai perpustakaan untuk penjadualan tugas, yang paling biasa digunakan dan berkuasa ialah crontab. crontab ialah sistem pengurusan dan penjadualan

Nota kajian PHP: perangkak web dan pengumpulan data Nota kajian PHP: perangkak web dan pengumpulan data Oct 08, 2023 pm 12:04 PM

Nota kajian PHP: Perangkak web dan pengumpulan data Pengenalan: Perangkak web ialah alat yang secara automatik merangkak data daripada Internet Ia boleh mensimulasikan tingkah laku manusia, menyemak imbas halaman web dan mengumpul data yang diperlukan. Sebagai bahasa skrip sebelah pelayan yang popular, PHP juga memainkan peranan penting dalam bidang perangkak web dan pengumpulan data. Artikel ini akan menerangkan cara menulis perangkak web menggunakan PHP dan memberikan contoh kod praktikal. 1. Prinsip asas perangkak web Prinsip asas perangkak web adalah untuk menghantar permintaan HTTP, menerima dan menghuraikan respons H pelayan.

Bagaimana untuk memadam automasi arahan pintasan Apple Bagaimana untuk memadam automasi arahan pintasan Apple Feb 20, 2024 pm 10:36 PM

Cara Memadam Automasi Pintasan Apple Dengan pelancaran sistem iOS13 baharu Apple, pengguna boleh menggunakan pintasan (Pintasan Apple) untuk menyesuaikan dan mengautomasikan pelbagai operasi telefon mudah alih, yang sangat meningkatkan pengalaman telefon mudah alih pengguna. Walau bagaimanapun, kadangkala kita mungkin perlu memadamkan beberapa pintasan yang tidak diperlukan lagi. Jadi, bagaimana untuk memadamkan automasi arahan pintasan Apple? Kaedah 1: Padam melalui apl Pintasan Pada iPhone atau iPad anda, buka apl "Pintasan". Pilih dalam bar navigasi bawah

Petua dan kaedah untuk operasi skrip Python untuk mencapai tugas automasi yang pantas Petua dan kaedah untuk operasi skrip Python untuk mencapai tugas automasi yang pantas Oct 05, 2023 am 11:15 AM

Petua dan kaedah untuk operasi skrip Python untuk mencapai tugas automasi yang pantas Pengenalan: Dengan perkembangan teknologi komputer, automasi telah menjadi kemahiran yang diperlukan dalam banyak industri. Sebagai bahasa pengaturcaraan yang mudah dipelajari dan berkuasa, Python telah menjadi salah satu alat pilihan untuk mengautomasikan tugas. Artikel ini akan memperkenalkan beberapa teknik dan kaedah operasi skrip Python untuk mencapai tugas automasi yang pantas, dan melampirkan contoh kod khusus untuk membantu pembaca memahami dan menerapkannya dengan lebih baik. 1. Untuk memasang persekitaran Python, mula menulis skrip Python.

See all articles