www.gecko.web.id
   Resource Untuk Pengembang Web, PHP, CSS, MySQL, ajax.

   Home · Belajar PHP · Data mining, web fetching atau mencuri isi web

19
Dec ’10
Data mining, web fetching atau mencuri isi web

Pernahkah Anda menemukan situs yang isinya adalah kumpulan penggalan artikel dari situs-situs lain?
Pernahkah Anda punya bayangan untuk mencuri download link dari gudanglagu.com?
Pernahkah Anda punya rencana untuk mengumpulkan sebanyak mungkin alamat email?
Pernahkah Anda ingin membuat situs pencari artikel pdf?
ingin membuat auto content web? auto blog?

Mungkin sebelum harapan Anda terwujud ada baiknya kita belajar bareng gimana melakukan data mining / lebih fokus ke web fetching dengan PHP. Untuk memperdalam teknik-teknik data mining atau penggalian data bisa merujuk ke wikipedia tentang penggalian data.

Untuk studi kasus mari kita curi data-data dari gudanglagu.com . Saya pernah melakukannya dan mendapatkan lebih kurang 7000 link download dalam waktu yang tidak terlalu lama. Yah, paling tidak sudah cukup untuk memulai sebuah situs download mp3 atau menjual script download mp3 plus databasenya.

Mari kita lakukan, tapi terlebih dahulu siapkan webserver di komputer lokal Anda. Saya tidak menganjurkan melakukan di tempat hostingan asli, memang apabila dihost di sana penggalian data akan berpuluh-puluh kali lebih cepat. Tapi penggunaan resource yang besar akan sangat mungkin account Anda disuspend. Saya sudah mengalaminya 2 kali dan kapok. Optimasi script saya untuk webhosting beneran tidak pernah berhasil. Paling tidak untuk saat ini hehehe.

get website content atau mengambil isi web bisa kita lakukan dengan banyak cara.
Dengan PHP diantaranya adalah dengan:

Mungkin masih ada teknik lainnya, dan kita tidak akan membahas semuanya. Saya akan menampilkan satu contoh dengan file_get_contents

dengan script di atas kita bisa mendapatkan seluruh kode HTML dari http://gudanglagu.com bahkan tampilannya sama persis dengan halaman depan gudanglagu.com. Ya memang semua kodenya kita ambil dan kita tampilkan di localhost.

Pertanyaan selanjutnya adalah bagaimana mengambil sebagian isi dari gudanglagu.com. Misalkan kita akan mengambil headlinenya, jadi kita analisa dulu kode HTMLnya. Headline gudanglagu.com ternyata diawali dengan <!-- LATEST HEADLINES --> dan diakhiri dengan <!-- SECTIONS (CATEGORIES) --> dengan kata lain isi yang kita harapkan diapit dengan dua buah komen di atas.

Selanjutnya adalah mencari posisi dan posisi menggunakan strpos

Dari situ kita tahu posisi awal dan akhirnya, tinggal kita extract pakai substr

Dan walla.... sudah bisa menampilkan data yang kita inginkan. walaupun tidak begitu sempurna.
Cara lain adalah dengan menggunakan explode.

Dan dengan cara ini hasilnya lebih bagus, pertanyaannya berapa resource yang digunakan untuk script ini? Berapa lama waktu eksekusi script untuk satu halaman. Kalau satu halaman saja membutuhkan waktu sekian lama, berapa lama untuk mengambil keseluruhan data dari satu situs segede gudanglagu.com?

Baiklah, saya akan memberi alternatif lain dengan menggunakan HTML DOM. Dan saya tidak mau repot dengan urusan ini karena sudah ada "PHP Simple HTML Dom parser" yang akan memudahkan segalanya. Tinggal kita unduh saja dan ambil satu file yaitu simple_html_dom.php dan kita include saja.

Lets do it, kita akan mengambil semua link di halaman depan gudanglagu.com dengan script ini:

contoh lain, kalau ingin mengambil semua gambar bisa dengan ini:

 

Contoh untuk gudanglagu.com

1. Mendapatkan link dari tangga lagu.

2. Mendapatkan alamat download lagu

kalau dulu mereka masih menampilkan alamat download ke 4shared, tapi sekarang sudah digandi ke alamat download otomatis dari 4shared. Kita juga bisa kok bikin seperti ini. Dengan penerapan seperti ini juga tentunya.

3. Gabungan dari 2 script di atas, download mp3 tangga lagu populer gudanglagu.com

 

Conclution

Data mining atau penggalian data amat penting bagi kita yang ingin membuat website sedangkan tidak punya kemampuan untuk menulis konten, atau ingin membuat website dengan jumlah data yang banyak dan terlalu malas mengentry data. Tapi dalam data mining seharusnya kita juga menghargai orang yang punya konten asli; misalnya dengan menyebutkan sumber, tidak asal sedot semua. Perhatikan copyright dari empunya konten.

Dalam hal menggali data lewat web fechting atau screen scrapping atau web grabing kita juga perlu memperhatikan penggunaan resource kita. Jangan asal grab, ingat penggunaan rsource server berlebihan akan menyebabkan disuspend oleh penyedia hosting. Ini terjadi kalau kita pakai shared host. Jika tidak ingin disuspend ya harus hemat resource atau upgrade hosting kita ke paket yang lebih besar.

Untuk menghemat resource kita bisa melakukan penjadwalan pada script kita. Jadi kita melakukan grab misalnya sehari sekali dan konten disimpan di database. Atau menggunakan web caching. Halaman kita cache selama 24 jam. Toh tangga lagunya gudanglagu.com tidak berubah setiap saat. Saya rasa satu hari sekali sudah cukup.
Amat salah kalau tiap ada user mau lihat tangga lagu kita melakukan grabbing. ya habislah resource kita. Malahan bisa-bisa disuspend bahkan diusir dengan paksa dari hostingan kita.

Saya rasa untuk dasar sekian aja dulu, bila ada tambahan, atau ada script fetching hasil karya Anda yang mau dishare di sini, silahkan. Ada ide untuk tutorial fetching berikutnya juga silahkan. Semoga bermanfaat untuk kebaikan.. Tolong kalau kopas disebutkan sumber dari gecko.web.id plus back link. tnx..

Artikel yang sesuai:

Untuk mengetahui update blog ini, ada baiknya Anda
me-LIKE facebook page ini.




masstyo pada April 25, 2012 (7:06PM)
Mencari artikel tutorial tentang Scrapping dan Grabbing akhirnya mendarat di sini. Turut menyimak dan mempelajari dulu maklum baru belajar ttg php, scrapping dan grabbing aka data mining. Thanks buat tutorialnya Om Gecko.
aa pada April 19, 2012 (1:13PM)
mmmm...
pulau tidung pada April 18, 2012 (7:37AM)
terimaksih gan artikelnya sangat membatu saya
Pulau Tidung pada April 17, 2012 (1:16PM)
Terima kasih ilmu nya..,,
jagooweb pada March 15, 2012 (7:53PM)
keren info nya. ayoo terus berkarya
Lirik Lagu pada December 13, 2011 (2:27PM)
duh muter2 cari rahasia gudanglagu.com eh disini gan gecko membeberkan secara garis besar MANTAP...sekali share dong gan yang terhubung ke 4 shared langsung bukan terhubung ke gudanglagunya. thx banget share yang sangat keren....
deden-web pada November 23, 2011 (7:30PM)
waw...masih belom ngerti...xixixixi....maklum newbi
pulau tidung pada September 29, 2011 (3:07PM)
di jamingag melanggar aturan uu IT ya gan...
Ahmad pada September 6, 2011 (9:33PM)
wah.. susah amat gan..?

tolong sediain contoh yang bisa di unduh.

ane ngk paham klo cuma baca artikel nya.

bisa nya klo ad sample nya gitu sambil baca tutorialnya.

plss..

mksh ^_^
Fahru pada September 6, 2011 (9:24PM)
Dah baca berulang-ulang tetep ngk paham..

script itu taruh mana ?

ap ad contoh hasil nya yg bisa di unduh gitu gan??
Rochaksiadi pada July 23, 2011 (10:12PM)
Mantap artikelnya...

Salam Kenal....
Klopototolia TJ pada June 26, 2011 (12:34AM)
wah baru tau saya mas admin, makasih yah sudah mau berbagi.

salam kenal.
nyo2 pada June 21, 2011 (12:20PM)
nice info gan,
like this ^-
kijang22 pada May 5, 2011 (3:25PM)
mas gimana misalnya aku pengen ngambil from reservasi tiket pesawat pd web maskapai tertentu buat ditampilin di web sendiri.. metodenya gimana mas..thx
Gajah
Giliran Admin ngomong.. :D
gecko pada April 24, 2011 (10:22PM)
@gerald: dulu waktu terakhir ke situs tersebut sepertinya masih manual belum search otomatis ke situs 4shared langsung. Nggak tahu kalo sekarang sudah begitu.

Untuk melakukan itu sangat mudah dan saya sudah membuat script untuk itu.
Saya udah bikin versi alphanya dan bentar lagi akan saya release. natinya kan saya jual dan kalau Anda berminatsaya akan memberikan diskon khusus buat Anda.

tnx
Gerald pada April 23, 2011 (5:31PM)
Artikel yg bagus sekali dan menampakkan intelektualitas anda. Tapi kalau boleh saya beri masukan, itu situs gudanglagu menggunakan script WP yg dimodifikasi, baik plugin dan theme nya.

Kesimpulan saya adalah, bahwa situs tersebut melakukan search otomatis setiap kali visitor mencari lagu tertentu. Maka akan muncul link download dari 4shared serta embed youtube. Itu berarti dia membuat custom search 4shared dan youtube. Sesederhana itu.

Kalau anda sudah berhasil membuatnya, tolong dikirim ke saya di contact blog saya.

Terima kasih sebelumnya
QuantaMultimedia pada February 28, 2011 (2:05AM)
thanx tutorialnya :)

please visit ya ke http://quantamultimedia.com/
alle pada February 23, 2011 (5:24PM)
wah.. mantap bgt.. tapi masih amat sangat bingung.. btw wp-robot & smua sopwer autoblog itu pada intinya kaya gini ya ?? thx pencerahannya...
Gajah
Giliran Admin ngomong.. :D
gecko pada February 23, 2011 (1:48AM)
@kukuruyuk: yup saya paham maksud Anda. Maksud dari artikel di atas untuk memberi gambaran buat temen2 gimana sih cara bikin script sederhana untuk grab data dari situs lain. Tentunya dapat juga dikembangkan untuk disimpan di database. Outputnya khan berupa array. Setelah di database data mau diapakan terserah.

Makasih tambahannnya bro. Wawasan saya & temen2 jadi bertambah.

moga tambah semangat buat sharing.
kukuruyuk pada February 23, 2011 (12:34AM)
kalo masalah mengekstraksi data, kemampuan skrip anda tidak diragukan. cuma, untuk masalah konsep data mining, yang anda lakukan itu belum bisa disebut data mining. data mining itu bukan hanya sekadar mengambil data milik orang dan menampilkan di web milik kita.

mengetahui trend, itu bukan proses berikutnya dari data mining. tapi, memang itulah yang ingin dicapai.dalam data mining, data yang diekstrak itu biasanya, yang tersimpan dalam bentuk basis data relasional.

saya melihat, yang anda lakukan itu tidak lebih dari sekadar select * from tbl_tanggalagu.lalu, dimana konsep dataminingnya?mengkestrak tangga lagu dan menampilkan diweb milik sendiri?saya rasa anda salah memahami konsep data mining.

contoh web mining, misalnya ada orang yang mengunjungi web A dan web B, maka ada kemungkinan 90% dia mengunjungi web C.

semoga membantu
Gajah
Giliran Admin ngomong.. :D
gecko pada February 22, 2011 (9:04PM)
@kukuruyuk: pada prinsipnya sama aja, kalo boleh tahu perbedaannya yg mana?

Liat aja di script contoh "Contoh untuk gudanglagu.com": 1. Mendapatkan link dari tangga lagu. 2. Mendapatkan alamat download lagu

sepertinya sama aja, itu ada extract link. Extract content juga bisa kalo mau. Cuman cara yg saya pakai ga pakai algoritma yg ruwet. Dan ini cara yang udah batle proven versi sederhananya.

Kalo masalah trend itu menurut saya tingkatan yg beberapa langkah setelah data mining. Mungkin langkah yg dekat dengan data mining adalah indexing agar mudah ditemukan, compressing biar berukuran ramping.

kalo ada tambahan boleh dishare dimari gan
kukuruyuk pada February 21, 2011 (7:53PM)
data mining yang anda maksud disini tampaknya berbeda dengan data mining yang menjadi mata kuliah di kampus saya karena data mining tidak sekadar menggali data, tapi mengekstrak data dengan beberapa algoritma yang telah ditentukan.

salah satu gunanya adalah memprediksi trend yang akan terjadi.
jeksparo pada February 10, 2011 (9:45PM)
terimakasih buanyak , ini yang aq cari selama ini, tapi masih ane pelajari dikit2, soalnya blm bisa php
Ferry pada February 6, 2011 (8:26AM)
INI artikel yang sangat saya cari,, sampai saat ini saya masih menggunakan FIle Get Contents, ehh ternyata ada trik yang lebih simple dan mudah ... :) thanks banget, ya
L4n4ng pada January 22, 2011 (5:41AM)
Dah bolak balik tak baca kok q lum faham jg.. http://mycms.fr.gp
adikcilak pada January 14, 2011 (9:36AM)
Info yang sangat berguna..
terima kasih sudah mau membagi.. :)
Trik Komputer pada January 9, 2011 (12:45AM)
Terimakasih atas ilmunya, sangat bermanfaat.

Salam,

Rian

© 2008-2010 Eko Priyanto - www.gecko.web.id - Dapat dikopi secara bebas dengan mencantumkan sumber artikel.