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>Untuk mencoba grab page diatas kita buat file index.php, contoh lengkapnya seperti dibawah!
<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>
<?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