Web scraping merupakan sebuah teknik mengorek suatu website untuk mendapatkan informasi.

Alasan web scraping dilakukan salah satunya adalah penyedia produk tidak menyediakan API endpoint yang dibutuhkan untuk memperoleh informasi dari suatu produk.

Bagaimana cara untuk mengorek suatu website untuk mendapatkan informasi?

Ketika website berhasil dimuat maka informasi website tersebut akan disimpan dalam bentuk HTML dan untuk mendapatkan informasi dari HTML maka diperlukan keterampilan bermain Document Object Model.

Simak contoh kode sederhana di bawah ini.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<p>This is a very important data</p>

<script>
// Mendapatkan teks "This is a very important data"
const valueFromP = document.querySelector('p').textContent;
  
// Dari informasi tersebut, kita bisa buat dalam bentuk object dan 
// menyimpannya ke dalam file dengan ekstensi .json
return {
    "content": valueFromP
};
</script>

Banyak bahasa pemrograman yang menyediakan perkakas untuk melakukan scraping website. Misalnya, JavaScript menyediakan pustaka untuk web scraping seperti JSDOM, Cheerio, dan Puppeteer.

Selain web scraping, kita juga bisa mendapatkan informasi dari suatu website dengan cara inspect network di developer tools.

Selanjutnya, informasi dari web yang sudah di scraping disimpan dalam bentuk file atau database. Jika bentuknya file, biasanya disimpan dalam file berekstensi json agar bisa dikonsumsi lewat AJAX. Jika bentuknya database, bisa disimpan dalam bentuk SQL atau NoSQL.

Setelah berdiskusi dengan teman saya, Budi Surya Darma, ia memberikan dua tips jika melakukan web scraping dengan JavaScript:

  1. Jika scrape website tanpa interaksi pakai Cheerio atau JSDOM.
  2. Jika scrape website perlu interaksi pakai Puppeteer.