Mengenal Web Scraping

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

Sebentar, kok scraping dibilang mengorek?

Oh, kadang-kadang saya mendefinisikan sesuatu secara harfiah. Coba kamu klik tautan arti kata scraping dalam bahasa Indonesia lewat Google Translate.

Kadang untuk mendapatkan informasi rahasia dari seseorang, pasti kamu korek-korek kan? He he he.

Kembali ke topik, mengapa web scraping ini ada?

  1. Web developer belum menyediakan API endpoint.
  2. Web developer menyediakan API endpoint namun respon API yang dihasilkan tidak memuaskan bagi yang akan menggunakan respon API itu.

Bagaimana cara untuk mengorek suatu website untuk mendapatkan informasi? Ketika website berhasil dimuat maka bentuknya adalah elemen HTML dan untuk mendapatkan informasi dari elemen HTML maka diperlukan keterampilan bermain Document Object Model atau yang disebut dengan DOM. Silakan simak contoh sederhana pada gist di bawah.

Setahu saya ada dua bahasa pemrograman yang sering digunakan untuk web scraping yakni Python dan JavaScript. Python pakai library Beautifulsoup. JavaScript (di lingkungan NodeJS) ada tiga library yang biasanya digunakan yakni Puppeteer, Cheerio dan JSDOM.

Di atas adalah cara pertama. Namun, ada juga cara lain seperti inspect network di developer tools untuk mendapatkan endpoint tertentu yang menghasilkan informasi penting. Selanjutnya, informasi ini disimpan dalam bentuk file atau database. Jika dalam file, biasanya saya simpan dalam file berekstensi json agar bisa dikonsumsi lewat AJAX. Jika dalam database, saya bisa simpan dalam bentuk SQL atau NoSQL.

Jika kamu seorang web developer yang ingin melakukan web scraping pakai JavaScript, ada dua pertimbangan yang diberikan teman saya.

  1. Jika scrape tanpa interaksi maka gunakan Cheerio.
  2. Jika scrape perlu interaksi maka gunakan Puppeteer.

Saat ini saya sedang bermain web scraping dengan situs wiki Brave Frontier (sebuah mobile game RPG) menggunakan Cheerio dan Axios di NodeJS. Kalian bisa berkunjung di repo scraping-bravefrontier yang saya buat.

Jika, tertarik mempelajari web scraping bisa mampir ke kanal Telegram JavaScript Indonesia dan cari topik tentang web scraping. Semoga bermanfaat.