itu Mengikis dalam JavaScript adalah cara yang efektif untuk mengumpulkan data web, baik konten statis maupun dinamis. Panduan ini menjelaskan semuanya.
Prasyarat untuk melakukan web scraping di JavaScript

Sebelum mulai mengkodekan, Anda harus menyiapkan lingkungan kerja. Untuk itu, Anda memerlukan dua alat dasar:
- ✅ Node.js : ini adalah lingkungan eksekusi JavaScript, open-source dan multiplatform. Ini memungkinkan Anda untuk menjalankan kode JS di luar browser.
- ✅ npm (Node Package Manager): Ini adalah pengelola paket yang terintegrasi dengan Node.js, berguna untuk menginstal perpustakaan dengan cepat.
Untuk perpustakaan, berikut ini yang paling populer:
- ✅ Dalang dan Penulis naskah untuk mengikis situs dinamis. Mereka mensimulasikan peramban nyata dan memuat halaman seperti pengguna.
- ✅ Cheerio untuk pengikisan statis. Aplikasi ini ringan, cepat, dan mudah digunakan.
Bagaimana cara melakukan web scraping di JavaScript?
Mari kita mulai dengan tutorial singkat ini.
Langkah 1: Instalasi dan konfigurasi
- Unduh Node.js, lalu instal. Periksa instalasi dengan terminal:
node -v
npm -v
- Buat sebuah proyek Node.js di terminal Anda.
mkdir my-scraping
cd my-scraping
npm init -y
Ini akan membuat proyek Node.js dengan berkas package.json.
- Instal pustaka yang diperlukan
👉 Untuk halaman statis (Cheerio)
npm install axios cheerio
👉 Untuk halaman dinamis (Dalang)
npm install dalang
Langkah 2: Membuat skrip pengikisan
- Menggores halaman statis dengan Cheerio
// Mengimpor pustaka
const axios = require('axios');
const cheerio = require('cheerio');
// URL halaman yang akan dihapus
const url = "https://exemple.com";
// Fungsi utama
fungsi async scrapePage() {
try {
// Mengunduh konten HTML
const { data } = await axios.get(url);
// Memuat HTML dengan Cheerio
const $ = cheerio.load(data);
// Contoh: mengambil semua judul h1
const judul = [];
$("h1").each((i, elem) => {
titles.push($(elem).text().trim());
});
// Menampilkan hasil
console.log("Judul ditemukan:", judul);
} catch (error) {
console.error("Kesalahan saat melakukan scraping:", error);
}
}
// Menjalankan skrip
scrapePage();
👉 Anda dapat mengganti https://exemple.com dengan URL halaman yang ingin Anda kikis dan modifikasi selektor $ ("h1") untuk menargetkan apa yang menarik minat Anda (misalnya $ ("p"), .class, #iddll.).
- Mengambil data dari halaman dinamis menggunakan Puppeteer
// Impor Dalang
const dalang = require("dalang");
// URL halaman yang akan dihapus
const url = "https://exemple.com";
async function scrapePage() {
// Meluncurkan peramban tanpa antarmuka grafis (tanpa kepala)
const browser = await dalang.launch({ headless: true });
const page = await browser.newPage();
mencoba {
// Pergi ke halaman
await page.goto(url, { waitUntil: "networkidle2" });
// Contoh: mengekstrak teks dari semua judul h1
const titles = await page.$$eval("h1", elements =>
elements.map(el => el.textContent.trim())
);
console.log("Judul ditemukan:", titles);
} catch (error) {
console.error("Kesalahan saat melakukan scraping:", error);
} akhirnya {
// Menutup peramban
menunggu browser.close();
}
}
// Menjalankan skrip
scrapePage();
Tahap 3: Mengelola data yang diekstrak
Data yang dipulihkan dapat disimpan dalam format CSV untuk Excel, atau disimpan dalam format JSON untuk diintegrasikan ke dalam database.
// Simpan sebagai JSON
fs.writeFileSync("hasil.json", JSON.stringify(hasil, null, 2), "utf-8");
console.log("✅ Data disimpan di resultats.json");
// Simpan sebagai CSV
const parser = new Parser();
const csv = parser.parse(hasil);
fs.writeFileSync("hasil.csv", csv, "utf-8");
console.log("✅ Data disimpan di resultats.csv");
} catch (error) {
console.error("❌ Kesalahan saat melakukan scraping:", error);
}
}
scrapeAndSave();
Praktik terbaik untuk web scraping di JavaScript
Sebelum menjalankan skrip Anda, penting untuk menerapkan beberapa praktik terbaik agar proses scraping Anda tetap efektif.
- 🔥 Hormati file robots.txt : Ini adalah aturan emas untuk menghindari masalah hukum dan etika.
- 🔥 Mengelola CAPTCHA dan blokir dengan proksi atau layanan anti-CAPTCHA.
- 🔥 Membuat skrip Anda lebih kuat Tambahkan penanganan kesalahan dan pengecualian untuk mencegah kerusakan.
Alternatif apa yang harus dipertimbangkan?
Web scraping tidak terbatas pada JavaScript. Ada beberapa opsi lain yang dapat Anda gunakan, seperti:
- Python Scrapy dan BeautifulSoup bekerja dengan sangat baik untuk memulihkan data secara efisien.
- PHP ideal untuk pengembang web yang ingin mengintegrasikan scraping secara langsung ke dalam proyek mereka.
- Alat pengikis web sebagai Data Cerah, Octoparse dan Apify. Mereka sempurna jika Anda tidak ingin membuat kode, tetapi tetap menginginkan kontrol penuh atas data Anda.
FAQ
Bagaimana cara mengikis situs menggunakan JavaScript?
Untuk mengikis situs menggunakan JavaScript, Anda perlu mengikuti beberapa langkah utama:
- Identifikasi apakah halaman tersebut statis Di mana dinamika.
- Untuk halaman statis, gunakan Cheerio untuk mengekstrak HTML secara langsung.
- Untuk halaman dinamis, gunakan Puppeteer atau Playwright untuk mensimulasikan peramban, tunggu hingga konten dimuat sepenuhnya, lalu ekstrak data.
- Menyusun dan menyimpan data dalam format yang dapat digunakan seperti JSON Di mana CSV.
Apa alat scraping web JavaScript terbaik?
Semuanya tergantung pada jenis situs:
- 🔥 Cheerio cepat dan ringan, sempurna untuk halaman statis.
- 🔥 Dalang ideal untuk mensimulasikan peramban nyata dan mengelola konten dinamis.
- 🔥 Penulis naskah Mirip dengan Puppeteer, tetapi dengan fitur yang lebih canggih dan lintas browser.
Apa bahasa pemrograman terbaik untuk melakukan scraping?
Tidak ada bahasa pemrograman yang lebih baik untuk scraping. Pilihan akan bergantung pada proyek dan lingkungan Anda.
- 🔥 Python untuk proyek jalur cepat.
- 🔥 JavaScript Jika Anda sudah bekerja di ekosistem web.
- 🔥 PHP untuk mengintegrasikan scraping secara langsung ke dalam situs web yang sudah ada.
- 🔥 Alat tanpa kode seperti Data Cerah, Octoparse dan Apify.
Kesimpulannya, proses scraping web dalam JavaScript menyederhanakan pengumpulan data, baik dengan Cheerio, Dalang, maupun Penulis Naskah. Bagaimana dengan Anda? Teknik apa yang Anda gunakan?
💬 Bagikan pengalaman Anda atau ajukan pertanyaan Anda di kolom komentar!





