Perkenalan

Pengikisan web, juga dikenal sebagai pengumpulan web atau ekstraksi data web, adalah proses mengekstraksi informasi dari situs web secara otomatis. Informasi ini dapat mencakup teks, gambar, video, dan jenis data lainnya. Informasi ini dapat digunakan untuk berbagai tujuan seperti penelitian, analisis data, analisis pasar, dan banyak lagi.

Pengikisan web dilakukan dengan menggunakan program perangkat lunak, juga disebut pengikis web, untuk mengirim permintaan HTTP ke server situs web. Server kemudian mengirimkan kembali kode HTML untuk situs web tersebut, yang kemudian dapat diurai oleh web scraper dan mengekstrak informasi yang diinginkan. Informasi yang diekstraksi kemudian dapat disimpan dalam format terstruktur seperti CSV, JSON, atau XML.

Pengikisan web dapat dilakukan secara manual, namun sering kali dilakukan menggunakan alat dan skrip otomatis. Alat-alat ini dapat ditulis dalam berbagai bahasa pemrograman seperti Python, Java, atau JavaScript. JavaScript sangat berguna untuk web scraping karena memungkinkan pengembang berinteraksi langsung dengan Document Object Model (DOM) situs web, yang merupakan struktur mirip pohon yang mewakili elemen halaman web.

Web scraping banyak digunakan di berbagai industri seperti e-commerce, keuangan, pemasaran, dan banyak lagi. Namun, pengikisan web harus dilakukan secara etis dan legal, karena beberapa situs web mungkin memiliki persyaratan layanan yang melarang pengikisan atau mungkin memerlukan izin. Mengikis beberapa situs web tanpa izin mungkin dianggap ilegal.

Menyiapkan untuk pengikisan web

Kami akan menggunakan dua kerangka kerja ini untuk web scraping dengan JavaScript:

  • Axios: Ini adalah perpustakaan populer untuk membuat permintaan HTTP dalam JavaScript. Ini dapat digunakan untuk membuat permintaan ke situs web dan mengambil kode HTML, yang kemudian dapat diurai dan disalin menggunakan perpustakaan seperti Cheerio.
  • Cheerio: Ini adalah perpustakaan yang ringan dan cepat untuk menguraikan dan memanipulasi HTML dan XML. Ini dirancang untuk bekerja dengan DOM, sehingga memudahkan untuk memilih dan mengekstrak data dari halaman web.

Menyiapkan lingkungan pengembangan untuk web scraping menggunakan Axios dan Cheerio di Node.js adalah proses sederhana yang dapat dipecah menjadi beberapa langkah.

  • Instal Node.js: Seperti disebutkan sebelumnya, Node.js adalah runtime JavaScript yang memungkinkan Anda menjalankan kode JavaScript di luar browser web. Anda dapat mengunduh penginstal dari situs resminya dan menjalankannya di komputer Anda.
  • Buat direktori proyek baru dan inisialisasi npm: Buka baris perintah Anda, navigasikan ke lokasi di mana Anda ingin membuat direktori proyek, dan jalankan perintah npm init -y untuk membuat proyek baru dan inisialisasi npm. Ini akan membuat file package.json di direktori proyek Anda, yang akan berisi informasi tentang proyek Anda dan dependensinya.
  • Instal Axios dan Cheerio: Jalankan perintah npm install axios cheerio untuk menginstal kedua perpustakaan ini.
  • Buat file JavaScript baru: Di direktori proyek Anda, buat file baru bernama “scraper.js” atau nama apa pun yang Anda inginkan. Di sinilah Anda akan menulis kode web scraping Anda.
  • Impor Axios dan Cheerio: Di bagian atas file “scraper.js”, tambahkan baris kode berikut untuk mengimpor Axios dan Cheerio:
const axios = require('axios');
const cheerio = require('cheerio');

Sekarang Anda siap untuk mulai menggores web.

Menggores situs web

Untuk menggunakan Axios dan Cheerio untuk mengikis judul situs web memerlukan langkah-langkah berikut:

  • Gunakan Axios untuk mengirim permintaan HTTP ke situs web yang ingin Anda scrape. Misalnya, untuk mengikis judul “https://www.example.com, Anda akan menggunakan kode berikut:
axios.get('https://www.example.com')
  .then(response => {
    // The HTML code of the website is stored in the "data" property of the response object
    const html = response.data;
  });
  • Gunakan Cheerio untuk mengurai kode HTML dan memilih elemen judul. Misalnya:
const $ = cheerio.load(html);
const title = $('title').text();
console.log(title);

Kode ini menggunakan metode load Cheerio untuk mengurai kode HTML, lalu memilih elemen judul menggunakan pemilih CSS. Metode text digunakan untuk mengambil konten teks dari elemen judul.

Jadi kode lengkapnya akan terlihat seperti ini:

const axios = require('axios');
const cheerio = require('cheerio');

axios.get('https://www.example.com')
  .then(response => {
    const html = response.data;
    const $ = cheerio.load(html);
    const title = $('title').text();
    console.log(title);
  });

Ini hanyalah contoh sederhana cara menggunakan Axios dan Cheerio untuk mengikis judul situs web, Anda dapat menggunakan pendekatan serupa untuk mengikis elemen atau data lain dari situs web.

Misalnya, Anda dapat mengambil resep dari situs web, dengan asumsi elemen resep adalah div dengan kelas “resep” dan setiap elemen resep memiliki beberapa elemen turunan seperti judul, bahan, dan instruksi, kode berikut dapat digunakan untuk memilih elemen resep dan ekstrak datanya:

const $ = cheerio.load(html);
const recipeElements = $('.recipe');

const recipes = recipeElements.map((index, element) => {
    return {
        title: $(element).find('.recipe-title').text(),
        ingredients: $(element).find('.ingredients').text(),
        instructions: $(element).find('.instructions').text(),
    };
}).get();

console.log(recipes);

Kode ini menggunakan metode load Cheerio untuk mengurai kode HTML dan kemudian memilih elemen resep menggunakan pemilih CSS. Kemudian menggunakan fungsi map untuk mengulangi elemen resep, dan untuk setiap elemen, ia menggunakan metode find untuk memilih elemen judul, bahan, dan instruksi, dan metode text untuk mengambil konten teks dari elemen tersebut. Data yang dihasilkan kemudian disimpan dalam array objek resep.

Kesimpulan

Kesimpulannya, web scraping dengan JavaScript adalah teknik yang ampuh untuk mengekstrak informasi dari situs web secara otomatis. Dengan menggunakan perpustakaan seperti Axios dan Cheerio, pengembang dapat dengan mudah membuat permintaan HTTP dan mengurai HTML untuk mengekstrak data yang diinginkan.

Contoh yang diberikan dalam garis besar ini menunjukkan cara menggunakan Axios dan Cheerio untuk mengambil resep dari situs web, namun pendekatan ini dapat diterapkan ke berbagai kasus penggunaan dan situs web. Dengan memahami dasar-dasar web scraping dengan JavaScript, pengembang dapat memperoleh wawasan berharga dari data dalam jumlah besar dan mengotomatiskan tugas yang berulang.

Penting untuk diingat bahwa web scraping harus dilakukan secara etis dan legal, karena beberapa situs web mungkin memiliki persyaratan layanan yang melarang scraping atau mungkin memerlukan izin. Penting juga untuk memperhatikan server situs web dan memastikan Anda tidak membuat terlalu banyak permintaan yang dapat menyebabkan situs web mogok.

Sebagai catatan terakhir, ini hanyalah garis besarnya, dan masih banyak aspek lain yang perlu dipertimbangkan saat membuat web scraper yang lengkap. Namun ini akan memberi Anda titik awal yang baik untuk memahami dasar-dasar web scraping dengan JavaScript dan mulai bereksperimen dengan proyek Anda sendiri. Semoga beruntung!

Konten lainnya di . Daftar ke >kami. Ikuti kami di "Twitter", "LinkedIn", "YouTube", dan "Discord" .

Tertarik untuk meningkatkan skala startup perangkat lunak Anda? Lihat "Sirkuit".