Kali ini saya akan membagikan tutorial bagaimana cara scraping sebuah website, bagi yang belum tau apa itu scraping bisa kalian sedikit cari tau info di google tentang apa itu scraping.

Singkatnya yaitu scraping adalah cara mengambil data dari sebuah website dan nantinya diolah kembali sesuai kebutuhan, untuk tutorial kali ini saya akan membuat aplikasi scraping website menggunakan framework express js.

Bagi yang belum mempelajarinnya bisa kalian buka dokumentasi dari express js itu sendiri disini, framework express js sendiri adalah sebuah project yang dibuat oleh Node js Foundation.
Kenapa saya memilih framework express js karena framework ini sangat mudah digunakan dan sangat simple dalam implementasinya.

Oke sekarang kita langsung saya masuk ke tutorial

Saya asumsikan kalian sudah menginstall nodejs dan npm.
Node js itu sendiri sudah berisi npm jika anda telah menginstall nodejs, bagi yang belum menginstallnya bisa download nodejs disini,

untuk mengecek apakah node js dan npm telah terinstall bisa jalan kan perintah node -v pada cmd atau terminal dan untuk npm yaitu ketikan npm -v jika perintah tadi kalian eksekusi maka akan muncul versi pada layar cmd atau terminal anda dan itu artinya nodejs dan npm sudah terinstall di komputer anda.

Contoh gambar



Setelah bagian diatas selesai mari kita mulai menginstall bagian-bagian express js,
yang pertama yaitu menginstall generator express js, sebenarnya ada beberapa cara dalam menginstall express js tapi saya lebih suka menggunakan generator jadi express js yang kita install stuktur foldernya sudah siap dan rapi jadi tinggal pake aja, Oke langsung saja kita praktekan.

Jika kalian sudah familiar dengan framework express js kalian bisa lewati langkah pertama dan langkah kedua.

  • Langkah pertama

Buka cmd / terminal lalu install generator untuk express js
Ketikan npm install express-generator -g pada cmd atau terminal.

Contoh gambar



Ingat perintah ini hanya dilakukan sekali, perintah tersebut untuk menginstall generator express js secara global, gunanya yaitu generator tersebut dapat digunakan untuk membuat project express js nantinya.

  • Langkah kedua
Buatlah sebuah folder dimana kalian akan menyimpan project tersebut
misalkan di drive D dengan nama folder project scraping, atau bebas lah dimana aja kalian mau nyimpen project ini. Kebetulan saya menggunakan linux jadi path foldernya seperti gambar di bawah ini.



Arahkan path pada cmd atau terminal kalian mengarah pada path folder tersebut, kalian bisa menggunakan cd folder/folder_tujuan, atau cara mudahnya buka folder tujuan lalu tekan tombol ctrl+shift tahan lalu klik kanan lalu open command here atau jika anda menggunakan linux buka folder tujuan lalu klik kanan lalu Open in Terminal, setelah itu ketikan perintah express --view=hbs aplikasiScrapingContoh seperti gambar dibawah ini.


Setelah di enter perintah tersebut akan membuat sebuah project dengan nama aplikasiScraping
jika telah selesai lalu ketikan cd aplikasiScraping && npm install perintah ini bertujuan untuk menginstall dependencies yang diperlukan secara default pada file package.json.

jika kalian lihat pada perintah di atas ditulis --view=hbs,
apa maksud dari option tersebut, option tersebut adalah kalian disuruh memilih template engine apa yang akan kalian gunakan, jika kalian tidak tau apa itu template engine silahkan cari tau di google.

Pada perintah diatas saya menggunakan templete engine handlebars disingkat menjadi hbs, template engine untuk javascript sendiri sangat banyak kalian tinggal pilih sendiri sesuai keinginan kalian.

Untuk mengetahui template engine apa saja yang support pada express js bisa ketikan perintah express -h disitu kalian bisa lihat jenis-jenis template engine bisa kalian cari tau satu persatu di google dan template engine mana yang cocok dengan anda.

  • Langkah ketiga
Pada langkah ketiga dan seterusnya sangat disaran kan kalian sudah sedikit mempelajari framework express js dan penggunaan library yang tersedia di NPM.

Apa itu npm ?
npm adalah package manager atau sebuah modul atau bisa disebuat kumpulan library yang dapat memudahkan dalam pembuatan project anda.

Contohnya untuk scraping itu sendiri saya akan menggunakan module scrape-it, kalian bisa cari module ini pada website npm klik link disini

Kenapa saya memilih module ini ? padahal module untuk scraping itu banyak sekali jika kalian cari di website NPM .

Alasan saya menggunakan module ini karena pemakaiannya sangat mudah, module ini menggunakan teknik DOM yaitu mengambil sebuah data dari website dengan menyeleksi tag-tag html, yang kita tau pasti kalian sudah sangat familiar dengan tag-tag html dengan itu maka akan sangat membantu anda dalam proses scraping menggunakan module ini.

Oke sekarang mari kita install module tersebut kedalam aplikasi dengan cara ketikan perintah
npm install scrape-it --save opsional --save berguna untuk memasukan module scrape-it tersebut ke dalam file package.json gunanya jika sewaktu-waktu kalian akan memindahkan project ke pc ataupun laptop lain kalian hanya perlu menjalankan npm install maka semua module yang sebelumnya kita pakai akan secara otomati terinstall.

Contoh gambar



  • Langkah keempat
Buka project lalu masuk ke folder routes buka file index.js, import module scrape-it

var scrapeIt = require('scrape-it');

lalu buat sebuah route baru pada file tersebut

router.get('scrapin',function(req,res,next){
// Ngodingnya disini
})


disini saya membuat sebuah route dengan nama scrapin, setelah itu kita akan mulai menggunakan fungsi-fungsi pada library scrape-it untuk memulai scraping website.

Target website yang akan kita scraping yaitu https://tentangkoding.blogspot.co.id/ dan kita akan mengambil data list berita pada website tersebut.

Edit file tersebut menjadi seperti gambar dibawah ini

router.get('/scrapin',function(req,res,next){
// Ngodingnya disini
scrapeIt("https://tentangkoding.blogspot.co.id", {
listDataArtikel:{
listItem:".post-outer-container",
data:{
judul:".post-title.entry-title",
penulis:".g-profile span",
tanggal:".published",
ringkasan:".snippet-item.r-snippetized",
gambar:{
selector:".snippet-thumbnail img",
attr:"src"
}
}
}
}).then(page => {
res.send(page);
});
})

lalu save, untuk mencoba apakah route tersebut berjalan dengan baik, kalian dapat menggunakan Rest Client, seperti postman contoh pada gambar dibawah ini


Kalian bisa melihat route tadi berjalan dengan baik dan menghasilkan data hasil scraping dari website tersebut.

Contoh diatas saya mencoba mengambil semua data artikel pada website yang telah kita targetkan, dengan ini data yang ada di website tersebut berhasil kita ambil dan siap untuk digunakan kembali sesuai kebutuhan.

Project bisa di download atau clone di github https://github.com/sutrisna/expressjs-scraping.git