Copyright © Hieppies
Design by Dzignine
Jumat, 23 Mei 2014

PHP Simple HTML DOM Parser


Apa itu Simple HTML DOM Parser?.
Simple HTML DOM Parser adalah sebuah kumpulan format atau sintax (kode) yang dibuat untuk mempermudah penggunaannya, dimana yang mempunyai tujuan untuk menguraikan elemen-elemen HTML untuk diambil dan dirubah atau dihapus pada elemen-elemen HTML tertentu menjadi sesuatu tampilan yang diinginkan.

Apa itu HTML DOM?.
HTML DOM (Document Object Model) adalah kumpulan obyek-obyek pada elemen HTML. HTML (HyperText Markup Language) sendiri bisa berarti sebuah bahasa untuk membuat situs web, dan menampikan informasi pada suatu situs penjelajah web internet dalam format hypertext ASCII agar dapat menghasilkan tampilan yang terintegrasi.

Hal pertama yang Anda harus lakukan adalah men-download salinan librari simple HTML DOM, tersedia secara bebas dari sourceforge.

Ada beberapa file yang di download, tetapi satu-satunya yang Anda butuhkan adalah file simple_html_dom.php sisanya hanya contoh dan dokumentasi.


Librari ini sangat mudah digunakan, tetapi ada beberapa dasar-dasar anda harus meninjau terlebih dahulu sebelum anda menjalankannya.

Contoh penggunaan Simple HTML DOM:

<?php

require_once 'simple_html_dom.php';

//menguraikan sebuah halaman situs http:// atau https://
$html = file_get_html("http://hieppies.blogspot.com");

//menguraikan pada file lokal
$html = file_get_html("index.html");

//menguraikan pada file lokal yang didalam direktori
$html = file_get_html("/menu/index.html");

//menguraikan string pada kode HTML
$html = str_get_html("<html>
                      <body>
                         <p>Hi, Cantik!.</p>
                         <p>Lagi ngapain?.</p>
                      </body>
                      </html>");

?>
Mengakses Elemen HTML DOM Anda bisa menginspeksi elemen HTML dengan menggunakan browser versi terbaru seperti Firefox, Google Chrome, Opera, yang sudah tersedia tools "Inspect Element". Disini saya menggunakan AddOns Firebug untuk browser Firefox.


Setelah anda memiliki objek DOM, anda dapat mulai bekerja dengan dengan menggunakan fungsi find() dan menciptakan rangkaian. Rangkaian ini adalah sekelompok object yang ditemukan melalui penyeleksi (selector) - (sintak ini sangat mirip dengan jQuery).

<html>
<body>
    <p>Hi, Cantik!.</p>
    <p>Lagi ngapain?.</p>
</body>
</html>
Dalam contoh HTML diatas, kita akan melihat bagaimana untuk mengakses informasi pada kedua paragraf, mengubahnya, dan kemudian menampilkan hasilnya.

<?php

require_once 'simple_html_dom.php';

//menguraikan string pada kode HTML
$html = str_get_html("<html>
                      <body>
                         <p>Hi, Cantik!.</p>
                         <p>Lagi ngapain?.</p>
                      </body>
                      </html>");

$elements = $html->find("p");

//menampilkan string pada paragraf pertama
echo $elements[0]->plaintext;

//menampilkan string pada paragraf kedua
echo $elements[1]->plaintext;

//menambahkan atribut class pada paragraf pertama
$elements[0]->class = "nama_class";

//menampilkan HTML yang ditambah class
echo $html->save();

?>
Dan HTML yang dihasilkan dari perintah $html->save():

<html>
<body>
    <p class="nama_class">Hi, Cantik!.</p>
    <p>Lagi ngapain?.</p>
</body>
</html>
Penyeleksian (Selector) lainnya.
Berikut adalah beberapa contoh lain dari penyeleksian melalui atribut. Jika anda terbiasa menggunakan jQuery, ini sangat mudah bagi anda.

<?php

//ambil elemen index pertama dengan atribut id="foo"
$single = $html->find("#foo", 0);

//ambil semua tag elemen yang beratribut class="foo"
$collection = $html->find('.foo');

//ambil semua tag elemen "a"
$collection = $html->find('a');

//ambil semua tag elemen a yang didalam tag elemen h1
$collection = $html->find('h1 a');

//ambil semua tag elemen img yang beratribut title="himom"
$collection = $html->find('img[title=himom]');

?>
Saya kira contoh-contoh ini cukup bagi anda untuk memulai dengan menggunakan PHP Simple HTML DOM Parser. Jika Anda memiliki keraguan atau pertanyaan gunakan formulir komentar di bawah ini. Semoga artikel ini membantu anda mengambil data yang efisien. Nanti akan ada artikel tentang scrap situs menggunakan librari ini yang agak kompleks, semoga bermanfaat.

1 komentar:

  1. Saya sedang mengerjakan skripsi mengenai semantic web yg men-scrap data dari berbagai web yg akhirnya menghasilkan rdf. Saya bingung bagaimana agar data saya selalu update dengan web asalnya. Sehingga disaat di query di shopbot, produk dari web asal itu update apakah masih ada atau sudah sold out. Jika bisa tlong dijawab melalui email ke fitri.cinthia25@gmail.com.

    BalasHapus