Grabbing dengan node.js

Apa itu grabbing?
Grabbing adalah teknik mengambil konten atau objek dari situs/website lain, lalu dimasukkan ke dalam website kita. Grabbing ini berbeda dengan web service, karena data yang diambil dengan grabbing ini tidak disajikan dengan format tertentu (misal JSON, XML) , namun data yang ditampilkan di halaman web tersebut. Jadi dalam data itu masih terselip tag html.
Pada artikel kali ini, kita akan mencoba teknik grabbing menggunakan NodeJS. Pertama — tama sebelum memulai pastikan anda sudah install NodeJS di PC/laptop. Jika belum silakan download di https://nodejs.org/en/download/ . Setelah NodeJS sudah terinstall, kita install express (framework node.js).Pada contoh kali ini saya menggunakan framework express, perintahnya sebagai berikut :
npm install expressSesudah express terinstall, install package request dengan npm juga.
npm install requestRequest adalah package yang digunakan untuk melakukan request http/https ke suatu situs atau url.
Oke untuk memulai grabbing pertama kita tentukan dulu url yang akan di grab misal : http://bola.kompas.com/ligaindonesia. Selanjutnya kita buat file index.js yang isinya sebagai berikut :
Pada contoh script di atas data yang akan di grab adalah di bagian tab ‘ALL NEWS’ . Nah untuk mengambil data/konten, library yang digunakan adalah request. Dan setelah berhasil mendapatkan response langkah yang dilakukan adalah :
Filter data yang hendak diambil dengan menggunakan regex(regular expression), contohnya data/text yang akan diambil berada pada tag html seperti berikut :
<div class=”article__asset”><img src=”http://assets.kompas.com/crop/0x0:780x390/177x117/data/photo/2017/02/21/18483391441502183113780x390.jpg" alt=”Yoo Hyun-koo Kembali Saat Sriwijaya FC Jamu Bali United”/></div>Selanjutnya kita buat regexnya :
/<div class=”article__asset”><img src=”(.+?)” alt=”(.+?)”\/><\/div>/gKarena pada contoh ini data/text yang akan diambil adalah url image dan judulnya, dan /g adalah global artinya mengambil semua data yang memiliki pola tersebut. Dan tentunya regex yang dibuat akan berbeda — beda untuk situs — situs yang lain/ page lain.
Untuk memudahkan kita untuk membaca data yang didapatkan tambahkan fungsi berikut ini :
Hasilnya sebagai berikut :

Selanjutnya kita buat variabel matches dan output lalu buat looping/ perulangan dari ‘matches = regex.exec(html)’ seperti contoh di atas. Setelah itu kita tampung data image url (matches[1]) dan title (matches[2]) ke dalam variable output.
Hasilnya adalah sebagai berikut :

Berikut adalah script lengkapnya :
Jadi untuk menggunakan teknik grabbing ini yang penting harus kita kuasai adalah regex. Karena biasanya suatu konten web pada sebuah website pasti akan memiliki pola tag html yang sama dengan konten yang lain. Dan dengan regex kita dapat mengambil data sesuai dengan yang kita mau misal hanya text atau text lengkap dengan tag htmlnya. Nah sekian dulu artikel kali ini semoga bermanfaat.

