Apa itu web scrapping ?
Sebelum membahas itu, saya ingin bercerita sedikit dulu dari mana awalnya saya tertarik coba-coba tentang web scrapping ini.
Awalnya dari rasa penasaran saya tentang dimana saja implementasi AI saat ini marak digunakan. Akhirnya sayapun cari-cari dan menemukan artikel menarik dari sebuah blog medium Makers Institute. Artikel tersebut membahasa tentang implementasi AI pada dunia jurnalistik. Intinya adalah, bagaimana membagun AI atau kecerdasan buatan untuk memproduksi berita. Dan ternyata udah banyak banget media jurnalistik yang nerapin AI ini. Sebagi contoh LA Times, Washington Post, dan di Indonesia ada Beritagar.id.
Bagaimana cara kernya ? Robot Jurnalis akan mencatat setiap berita baru, kejadian baru, press release terbaru dari beberapa sumber, semisal situs pemerintahan, situs tanda bencana, situs saham dan lain-lain. Setelah robot mengambil berita tersebut secara cepat, berita tersebut kemudian diolah lagi dengan algoritma yang telah di desain.
Dengan begitu, tidak mesti repot lagi harus menggunakan manusia untuk mencari beritua. NGeri jugak ya.. yup dizaman modern ini memang banyak sekali mengubah cara kita bekerja, atau sering juga disebut distrubtion.
Nah apa hubungannya dengan web scrapping ? Web scrapping adalah proses mengekstrak data dari sebuah situs web. Gmana tuh ceritanya ? jadi kita bisa mengambil informasi dari web lain lalu kita masukkan kedalam web kita. Jadi web kita otomatis memposting artikel sendiri. Gmana kerenkan ? kamu juga bisa buat untuk studi kasus lain lo… Misalnya mendeteksi apakah situs tersebut hoax, plagiat atau lainnya. Intinya ketika kita udah extrak data dari sumbernya, tahap selanjutnya kita harus mendeteksi data tersebut dengan algoritma tertentu untuk menentukan status data tersebut masuk kekategori mana. Misalnya haox atau nggak.
Langsung aja yah…
Untuk membuat web scrapping kamu bisa menggunakan python, php, nodejs, dan lain-lain. Tapi disini saya bakalan gunain nodejs alasannya karena saya lebih familiar dengan teknologi ini.
Adapaun library yang kita butuhkan adalah :
- cheerio ( adalah library jquery untuk node js, ini nanti yang bakalan membaca struktur/element yang ada di html.
- request-promise (library request, dengan model pemrograman promise (baca:apa itu promise)
Adapun langkah-langkahnya adalah :
- Pastikan di komputermu udah terinstall nodejs.
- Langkah pertama, kamu buat folder dulu, misalnya folder : belajar-scrapping
- Kemudian masuk ke folder tersebut.
- Selanjutnya kita akan install library-libray yang kita butuhkan tadi, buka cmd, ketikkan npm install request request-promise cheerio — save.
- Tahap selanjtunya, buka editor tempat kamu ngoding dan ketikkan syntak berikut :
const rp = require('request-promise');
const cheerio = require('cheerio');baris pertama, kita memanggil library request promise, sedangkan baris kedua kita memanggila library cheerio untuk scrapping.
selanjutnya kita belajar dulu gmana cara kerja promise :
rp(OPTIONS)
.then(function (data) {
// REQUEST SUCCEEDED: DO SOMETHING
})
.catch(function (err) {
// REQUEST FAILED: ERROR OF SOME KIND
});rp adalah fungsi request-promise yang tadi kita udah panggil. Options adalah paramater yang akan diproses pada promise tersebut, di parameter inilah nanti kita akan memasukkan alamat addres yang ingin kita ambil datanya.
Prosesnya, ketika parameter udah dimasukkan promise kemudian memproses, jika permintaan berhasil, hasilnya akan diolah di then , sedangkan jika failed maka tangkap oleh catch.
6. Kita akan belajar dulu gmana konsep cheerio. Misalkan kita punya struktur html :
<ul id="cities">
<li class="large">Aceh Singil</li>
<li id="medium">Tanah Bara</li>
<li class="small">Musliadi</li>
</ul>kita akan mengambil nilai tag id dengan ‘#’ dan tag div dengan ‘.’ . Berikut ini adalah cara mengambil data dari element diatas menggunakan cheerio :
$('.large').text()
// Aceh Singkil$('#medium').text()
// Tanah Bara$('li[class=small]').html()
// <li class="small">Musliadi</li>
tanda ‘$’ adalah fungsi cheerio yang tadi udah kita panggil. contoh pertama, kita akan mengambil nilai text dari tag div large.
Kamu juga bisa menampilkan data dengan cari mengiterasi. Caranya dengan menghitung seberapa banyak tag misalnya tag ‘li’, lalu lakukan proses yang kita inginkan.
$('li').each(function(i, elem) {
cities[i] = $(this).text();
});
// Aceh singkilContoh terakhir saya akan memanggil blog ku sendiri “musliadii.wordpress.com” dan akan mencetak judul artikel yang ada :

sekian, terima kasih. semoga bermanfaat. :)
