Kamis, 14 Februari 2013

Belajar Grabbing Website



Belajar Grabber Website

Dalam fungsi Php terdapat fungsi untuk mengambil konten dari website lain (Sering disebut Grabbing)! Ada 3 fungsi yang dapat digunakan, yaitu
  • file_get_contents()
  • curl()
  • fsockopen()

Untuk kali ini saya coba menggunakan fungsi pertama yaitu file_get_contents! Sebelumnya saya sarankan untuk membaca artikel saya diblog lain tentang fungsi str_replace() dan fungsi explode() untuk dasar pengenalan saja!
contoh web yang akan digrab http://contoh.com/index.xhtml, penggunaan fungsi diatas adalah file_get_contents('http://contoh.com/index.xhtml') sebaiknya kita simpan pada sebuah variabel!
contoh:
<?php

$grab=file_get_contens('http://contoh.com/index.xhtml');

// Menampilkan Source HTML
var_dump($grab);

?>

Untuk menampilkan source bisa juga menggunakan fungsi print_r()! Misal source nya seperti dibawah :
<html>
<body>
<div class="judul">Anggap aja judulnya</div>
<div class="menu">
<a href="w.xhtml?id=1">link1</a>
</div>
<div class="menu">
<a href="w.xhtml?id=2">link2</a>
</div>
<div class="menu">
<a href="w.xhtml?id=3">link3</a>
</div>
<div class="menu">
<a href="w.xhtml?id=4">link4</a>
</div>
<div class="paging">
<b>1</b> | <a href="index.xhtml?page=2">2</a> | <a href="index.xhtml?page=3">3</a>
</div>
Untuk mencoba grab page diatas kita buat file index.php, contoh lengkapnya seperti dibawah!
<?php

// Pertama kita buat fungsi potong
function potong($content,$start,$end){
if($content && $start && $end) {
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
} return '';
}
}

$url = 'http://contoh.com/index.xhtml?page='.$_GET['page'].'';
$grab = file_get_contents($url);

// Memulai grab dari sini (tentukan daerah yang unik dan paling atas)
$mulai = strstr($grab, '<html><body>');

// Kita ambil bagian judul
$judul = potong($mulai, '<div class="judul">', '</div>');

// tampilkan judul, kita bisa menggunakan if(!empty){} supaya kalau $judul tidak ada maka tidak akan ditampilkan
if(!empty($judul)){
echo '<div class="bmenu">'.$judul.'</div>';
}

// Sekarang kita ambil linknya saja (jangan lupa ambil yang unik)
$link = explode('<div class="menunya">', $mulai);

// karena $link yang akan kita ambil ada 4 maka buat seperti ini
for($i=1; $i<=4; $i++){
// Kita akan ambil ID
$menu = potong($link[$i], '<a href="w.xhtml?id=', '">');

//Kita ambil Nama nya
$nama = potong($link[$i], '">', '</a>');

// menampilkan link
if(!empty($menu)){
echo '<div class="list"><a href="w.php?id='.$menu.'">'.$nama.'</a></div>';

// Jangan lupa tutup for
}

// Selanjutnya membuat Pagging
$paging = potong($grab, '<div class="paging">', '</div>');

// karena linknya menggunakan index.xhtml maka kita harus merubahnya
$paging = str_replace('href="index.xhtml?', 'href="?', $paging);

// Menampilkan Pagging
if(!empty($paging)){
echo '<div class="pager">'.$paging.'</a>';

}

?>

Sekian dulu pembahasan tentang Cara grabbing website! Semoga bermanfaat

Posted by: dian_sunday
diansunday Updated at: 05.50