Mengikis Web dengan PHP – Tutorial Mengikis Halaman Web

oleh Vincy. Terakhir diubah pada 5 Juni 2023.

Pengikisan web adalah mekanisme untuk merayapi halaman web menggunakan alat atau utilitas perangkat lunak. Itu membaca konten halaman situs web melalui aliran jaringan.

Teknologi ini juga dikenal sebagai perayapan web atau ekstraksi data. Dalam tutorial sebelumnya, kami belajar cara mengekstrak halaman dengan URL-nya.

Ada lebih banyak perpustakaan PHP untuk mendukung fitur ini. Dalam tutorial ini, kita akan melihat salah satu komponen pengikisan web populer bernama DomCrawler.

Komponen ini berada di bawah framework PHP Symfony. Artikel ini memiliki kode untuk mengintegrasikan dan menggunakan komponen ini untuk merayapi laman web.

pengikisan web php

Kami juga dapat membuat utilitas khusus untuk mengikis konten dari halaman jarak jauh. PHP memungkinkan fungsi cURL bawaan untuk memproses siklus permintaan-respons jaringan.

Tentang DomCrawler

Komponen DOMCrawler dari pustaka Symfony adalah untuk mem-parsing konten HTML dan XML.

Itu membangun pegangan perayapan untuk mencapai simpul mana pun dari struktur pohon HTML. Itu menerima kueri untuk memfilter node tertentu dari input HTML atau XML.

Ini menyediakan banyak utilitas dan fitur perayapan.

  1. Pemfilteran node dengan kueri XPath.
  2. Node melintasi dengan menentukan pemilih HTML dengan posisinya.
  3. Pembacaan nama dan nilai simpul.
  4. Penyisipan HTML atau XML ke dalam tag penampung yang ditentukan.

Langkah-langkah membuat web scraping tool di PHP

  1. Instal dan buat instance pustaka klien HTTP.
  2. Instal dan buat instance library crawler untuk mem-parsing respons.
  3. Persiapkan parameter dan bundel dengan permintaan untuk mengikis konten jarak jauh.
  4. Merayapi data tanggapan dan membaca isinya.

Dalam contoh ini, kami menggunakan pustaka HTTPClient untuk mengirim permintaan.

Contoh pengikisan web PHP

Contoh ini membuat instance klien dan mengirimkan permintaan ke URL target. Kemudian, ia menerima konten web dalam objek respons.

PHP DOMCrawler mem-parsing data respons untuk memfilter konten web tertentu.

Dalam contoh ini, perayap membaca judul situs dengan mem-parsing h1 teks. Juga, mem-parsing konten dari situs HTML yang difilter oleh gugus kalimat menandai.

Gambar di bawah menunjukkan contoh struktur proyek dengan skrip PHP untuk mengikis konten web.

struktur proyek web scraping php

Cara menginstal pustaka framework Symfony

Kami menggunakan Symfony populer untuk mengikis konten web. Itu dapat diinstal melalui Komposer.
Berikut adalah perintah untuk menginstal dependensi.

composer require symfony/http-client symfony/dom-crawler
composer require symfony/css-selector

Setelah menjalankan perintah komposer ini, folder vendor dapat memetakan dependensi yang diperlukan dengan file autoload.php. Skrip di bawah mengimpor dependensi dengan file ini.

index.php

<?php

require 'vendor/autoload.php';

use SymfonyComponentHttpClientHttpClient;
use SymfonyComponentDomCrawlerCrawler;

$httpClient = HttpClient::create();

// Website to be scraped
$website="https://example.com";

// HTTP GET request and store the response
$httpResponse = $httpClient->request('GET', $website);
$websiteContent = $httpResponse->getContent();

$domCrawler = new Crawler($websiteContent);

// Filter the H1 tag text
$h1Text = $domCrawler->filter('h1')->text();
$paragraphText = $domCrawler->filter('p')->each(function (Crawler $node) {
    return $node->text();
});

// Scraped result
echo "H1: " . $h1Text . "n";
echo "Paragraphs:n";
foreach ($paragraphText as $paragraph) {
    echo $paragraph . "n";
}
?>

Cara memproses data yang dihapus web

Apa yang akan dilakukan orang dengan data yang diambil dari web? Kode contoh yang dibuat untuk artikel ini mencetak konten ke browser. Dalam aplikasi sebenarnya, data ini dapat digunakan untuk banyak tujuan.

  1. Ini memberikan data untuk menemukan tren populer dengan konten situs berita tergores.
  2. Ini menghasilkan arahan untuk menampilkan grafik atau statistik.
  3. Ini membantu untuk mengekstrak gambar dan menyimpannya di backend aplikasi.

Jika Anda ingin melihat cara mengekstrak gambar dari halaman, artikel tertaut memiliki kode sederhana.

Peringatan

Pengikisan web adalah pencurian jika Anda mengorek kebijakan penggunaan situs web. Anda harus membaca kebijakan situs web sebelum menggoresnya. Jika persyaratannya tidak jelas, Anda dapat memperoleh izin eksplisit dari pemilik situs web. Selain itu, mengkomersialkan konten yang diambil dari web adalah kejahatan dalam banyak kasus. Dapatkan izin sebelum melakukan aktivitas semacam itu.

Sebelum merayapi konten situs, penting untuk membaca persyaratan situs web. Ini untuk memastikan bahwa publik dapat dikenakan gesekan.

Orang-orang menyediakan akses API atau umpan untuk membaca konten. Adalah adil untuk melakukan ekstraksi data dengan penyediaan akses API yang tepat. Kami telah melihat cara mengekstrak judul, deskripsi, dan thumbnail video menggunakan YouTube API.

Untuk tujuan pembelajaran, Anda dapat menghosting situs web dummy dengan konten lorem ipsum dan mengikisnya.

↑ Kembali ke Atas


Source link