Mengambil Data Dari Website Lain


Mengambil Data Dari Website Lain

Selamat siang sobat blogger, kali ini saya akan share tutorial cara mengambil data dari website lain, disini saya menggunakan class dari simple html dom anda bisa mendownloadnya disini, jika anda ingin mempelajari dokumennya silahkan klik disini, untuk mengambil data dari website lain kita harus tahu terlebih dahulu struktur dari html target, dalam tutorial ini saya akan mengambil data dari Kementerian Perdagangan anda bisa melihatnya disini, data yang akan diambil adalah Data Harian dari Komodiatas Per provinsi di setiap kabkota
pertama buatlah projek dengan nama terserah anda kemudian pindahkan class simple_html_dom.php yang sudah anda download tadi ke dalam folder projek yang sudah anda buat, setelah itu salin kode berikut dan simpan file dengan nama index.php
<?php
 require_once __DIR__.'/simple_html_dom.php';

 $html = new simple_html_dom();

 // url target
 $html->load_file('http://ews.kemendag.go.id/');

 // mengambil tag header
 $header_1 = $html->find('div[class="uh-head"] span',0)->innertext;
 $header_2 = $html->find('div[class="uh-head"] span',1)->innertext;
 $header_3 = $html->find('div[class="uh-head"] span',2)->innertext;
?>
<table border="1">
 <thead>
  <tr>
   <th><?php echo $header_1; ?></th>
   <th><?php echo $header_2; ?></th>
   <th><?php echo $header_3; ?></th>
  </tr>
 </thead>
 <tbody>
  <?php
   // meloop data kabkota
   $kabkota = $html->find('div[class="content propinsi fl-left"] ul li');
   foreach($kabkota as $kk){

    // nama kabkota
    $nama = $kk->find('div[class="city"] span',0)->innertext;
  ?>
  <tr>
   <td colspan="3"><?php echo $nama; ?></td>
  </tr>
  <?php
   // list data setiap kabkota
   $datas = $kk->find('table tbody tr');
   foreach($datas as $data){

    // nama komoditas
    $komoditas = $data->find('td',0)->find('span',0)->plaintext;

    // harga 1
    $harga_1 = $data->find('td',1)->plaintext;

    // harga 2
    $harga_2  = $data->find('td',2)->plaintext;
  ?>
  <tr>
   <td><?php echo $komoditas; ?></td>
   <td><?php echo $harga_1; ?></td>
   <td><?php echo $harga_2; ?></td>
  </tr>
  <?php }} ?>
 </tbody>
</table>
untuk melihat struktur html target klik kanan pada page website nya lalu pilih Inspect element, pilih no 1 kemudian arahkan ke no 2 yaitu ke tag yang akan kita lihat strukturnya dan anda akan melihat hasilnya di no 3, lihat gambar di bawah ini

Mengambil Data Dari Website Lain (target 1)

di lihat dari gambar diatas bahwa text KOMODITAS, Tanggal 1 dan Tanggal 2 ada di dalam tag span dan tag span itu sendiri ada di dalam tag div dengan atribut class uh-head jadi untuk mengambil text dari class uh-head caranya adalah sebagai berikut
<?php
 // class simple html dom akan memecah tag menjadi array
 // di lihat dari gambar di atas bahwa text komoditas ada di tag span pertama
 // kemudian text tanggal sebelumnya ada di tag span ke 2
 // dan text tanggal berikutnya ada di tag span ke 3
 // jika menjadi array maka akan menjadi array 0 = komoditas, array 1 = tanggal sebelumnya dan array 2 = tanggal berikutnya

 // mengambil text komoditas
 $header_1 = $html->find('div[class="uh-head"] span',0)->innertext;

 // mengambil text tanggal sebelumnya
 $header_2 = $html->find('div[class="uh-head"] span',1)->innertext;

 // mengambil text tanggal berikutnya
 $header_3 = $html->find('div[class="uh-head"] span',2)->innertext;
?>
setelah itu untuk mengambil data per kabkotanya caranya sama seperti yang diatas arahkan ke tag yang akan kita lihat truktur htmlnya, perhatikan gambar dibawah ini

Mengambil Data Dari Website Lain (target 2)

disitu terlihat isi dari datanya ada di dalam tag div dengan atribut class content propinsi fl-left dan di dalam class tersebut juga data di bagi per tag li, untuk mengambil semua data yang ada di tag li caranya sebagai berikut
<?php
 // mengambil data per kabkota
 $kabkota = $html->find('div[class="content propinsi fl-left"] ul li');
 foreach($kabkota as $kk){

  // mengambil nama kabkota
  // disitu dapat di lihat bahwa nama kabkota ada di tag span dan tag span sendiri ada di dalam tag div dengan atribut class city
  // jadi untuk mendapatkan nama kabkotanya seperti ini
  $nama = $kk->find('div[class="city"] span',0)->innertext;

  // mengambil data komoditas per kabkota
  $datas = $kk->find('table tbody tr');
  foreach($datas as $data){

   // nama komoditas
   // jika panah bawah anda klik maka anda akan melihat struktur table yaitu terdiri dari tbody tr td
   // didalam tag td terdapat 3 tag span sedangkan nama komoditas ada di span satu
   // maka untuk mendapatkan nama komoditasnya seperti ini
   $komoditas = $data->find('td',0)->find('span',0)->plaintext;

   // harga sebelumnya
   // kemudian harga sebelumnya ada di tag td nah untuk yang ini kita harus menggunakan plaintext agar tag html tidak kita ambil dan hanya mengambil text nya saja
   $harga_1 = $data->find('td',1)->plaintext;

   // harga selanjutnya
   // untuk mengambil harga selanjutnya juga sama seperti cara sebelumnya hanya saja harga selanjutnya ada di array ke 2 sedangkan harga sebelumnya ada di array ke 1
   $harga_2 = $data->find('td',2)->plaintext;
  }
 }
?>
dalam tutorial ini saya menggunakan goggle chome sebagai browsernya
Ok, sekilan dulu tutorial kali ini, selamat menconba dan semoga bisa bermanfaat.

Berbagi Via

Share Facebook Share Twitter Share Google+ Share Pinterest
Jangan lupa tinggalkan komentarnya ya :)

1 comment:

  1. List of Best Online Slot Sites 2022 New Member Bonus check the site at MPO0404

    ReplyDelete