Mengambil data web dengan Cheerio dan Node.js 2026
Pengambilan data web dengan Cheerio dan Node.js 2026
Adélia Cruz
Neural Network Developer
20-Nov-2025
Web scraping adalah teknik yang kuat untuk mengekstrak data dari situs web, yang umum digunakan dalam analisis data, penelitian pasar, dan pengumpulan konten. Sebagai tahun 2026, memanfaatkan Cheerio dan Node.js untuk web scraping tetap menjadi pendekatan yang populer dan efisien. Artikel ini akan menjelajahi proses menggunakan Cheerio dan Node.js untuk web scraping, memberikan panduan komprehensif dan contoh praktis.
Daftar Isi
Apa itu Cheerio?
Prasyarat
Menyiapkan Proyek
API Pemilih Cheerio
Menulis Skrip Scraping
Menjalankan Skrip
Tantangan Web Scraping dengan Cheerio
Menangani CAPTCHA dalam Web Scraping
Menangani Halaman Dinamis
Kesimpulan
Apa itu Cheerio?
Cheerio adalah implementasi yang cepat, fleksibel, dan ringan dari jQuery yang dirancang khusus untuk aplikasi sisi server. Ini memungkinkan pengembang untuk menganalisis dan memanipulasi dokumen HTML menggunakan sintaks seperti jQuery di lingkungan Node.js. Berbeda dengan alat berbasis browser, Cheerio tidak melakukan rendering web nyata tetapi langsung memanipulasi string HTML, membuatnya sangat efisien untuk banyak tugas scraping. Dengan cara yang sama Puppeteer adalah alternatif yang bagus untuk scraping Cheerio.
Prasyarat
Sebelum memasuki kode, pastikan Anda telah menginstal Node.js dan npm (Node Package Manager) di sistem Anda. Jika belum terinstal, Anda dapat mengunduh dan menginstalnya dari situs web Node.js resmi.
Menyiapkan Proyek
Langkah 1: Membuat Direktori Proyek Baru
Pertama, buat direktori baru untuk proyek Anda dan inisialisasi sebagai proyek Node.js:
bashCopy
mkdir web-scraping
cd web-scraping
npm init -y
Bendera -y secara otomatis menjawab "ya" untuk semua pertanyaan, mengatur file package.json default.
Langkah 2: Menginstal Ketergantungan
Berikutnya, instal ketergantungan yang diperlukan, termasuk axios untuk membuat permintaan HTTP dan cheerio untuk menganalisis HTML:
bashCopy
npm install axios cheerio
Kesulitan dengan kegagalan berulang untuk menyelesaikan CAPTCHA yang mengganggu?
Temukan penyelesaian CAPTCHA otomatis yang mulus dengan teknologi Capsolver AI-powered Auto Web Unblock!
Klaim Kode Bonus Anda untuk solusi CAPTCHA terbaik; CapSolver. |: WEBS. Setelah Anda menukarkannya, Anda akan mendapatkan bonus tambahan 5% setiap kali recharge, Tak Terbatas
API Pemilih Cheerio
Cheerio adalah implementasi yang cepat, fleksibel, dan ringan dari jQuery inti yang dirancang khusus untuk server. Ini memungkinkan Anda menggunakan sintaks seperti jQuery untuk memanipulasi dokumen HTML dalam lingkungan Node.js.
Berikut adalah penjelasan rinci tentang API pemilih Cheerio dengan contoh kode:
const h1 = $('h1'); // Memilih semua elemen <h1>
console.log(h1.text()); // Output: Halo, dunia!
Selector Kelas:
javascriptCopy
const title = $('.title'); // Memilih elemen dengan class="title"
console.log(title.text()); // Output: Halo, dunia!
Selector ID:
javascriptCopy
const content = $('#content'); // Memilih elemen dengan id="content"
console.log(content.html()); // Output: <p>Ini adalah paragraf.</p><a href="https://example.com">Tautan</a>
Selector Atribut:
javascriptCopy
const link = $('a[href="https://example.com"]'); // Memilih elemen <a> dengan atribut href spesifik
console.log(link.text()); // Output: Tautan
Menelusuri dan Memanipulasi Elemen:
Menelusuri Elemen:
javascriptCopy
$('p').each((index, element) => {
console.log($(element).text()); // Output konten teks dari setiap elemen <p>
});
Mengubah Konten Elemen:
javascriptCopy
$('h1.title').text('Judul Baru'); // Mengubah konten teks dari elemen <h1>
console.log($('h1.title').text()); // Output: Judul Baru
Menambahkan dan Menghapus Elemen:
javascriptCopy
$('#content').append('<p>Paragraf lainnya.</p>'); // Menambahkan elemen <p> baru di dalam #content
console.log($('#content').html()); // Output: <p>Ini adalah paragraf.</p><a href="https://example.com">Tautan</a><p>Paragraf lainnya.</p>
$('a').remove(); // Menghapus semua elemen <a>
console.log($('#content').html()); // Output: <p>Ini adalah paragraf.</p><p>Paragraf lainnya.</p>
Contoh-contoh ini menunjukkan bagaimana Anda dapat menggunakan API pemilih Cheerio untuk memilih, menelusuri, dan memanipulasi elemen HTML dengan cara yang mirip dengan jQuery, tetapi dalam lingkungan Node.js.
Menulis Skrip Scraping
Buat file bernama scraper.js di direktori proyek Anda. File ini akan berisi skrip untuk mengambil data dari situs target. Tambahkan kode berikut ke scraper.js:
javascriptCopy
const axios = require('axios');
const cheerio = require('cheerio');
// URL Target
const url = 'https://example.com';
async function fetchData() {
try {
// Lakukan permintaan HTTP untuk mengambil konten HTML
const { data } = await axios.get(url);
// Muat dokumen HTML ke Cheerio
const $ = cheerio.load(data);
// Ekstrak data dari HTML
const title = $('title').text();
const headings = [];
$('h1, h2, h3').each((index, element) => {
headings.push($(element).text());
});
// Tampilkan data yang diekstrak
console.log('Judul:', title);
console.log('Judul-judul:', headings);
} catch (error) {
console.error('Error mengambil data:', error);
}
}
fetchData();
Penjelasan Kode
Mengimpor Modul: Skrip dimulai dengan mengimpor modul axios dan cheerio.
Mendefinisikan URL Target: URL situs web yang akan di-scrap ditentukan.
Mengambil Data: Fungsi fetchData melakukan permintaan HTTP GET ke URL target menggunakan axios. Konten HTML respons kemudian dimuat ke Cheerio.
Parsing HTML: Dengan sintaks seperti jQuery, skrip mengekstrak konten dari tag <title> dan semua tag <h1>, <h2>, dan <h3>.
Menampilkan Hasil: Data yang diekstrak dicetak ke konsol.
Menjalankan Skrip
Untuk menjalankan skrip scraping, jalankan perintah berikut di terminal Anda:
bashCopy
node scraper.js
Jika semua setup berjalan dengan baik, Anda seharusnya melihat judul halaman web yang di-scrap dan konten dari semua tag heading yang dicetak ke konsol.
Tantangan Web Scraping dengan Cheerio
Meskipun Cheerio menawarkan beberapa keuntungan untuk web scraping, juga datang dengan tantangan tersendiri yang mungkin dihadapi pengembang:
Situs Web Dinamis dan JavaScript: Salah satu tantangan utama dengan Cheerio adalah menangani situs web dinamis yang bergantung pada JavaScript. Situs web modern sering menggunakan JavaScript untuk memuat konten secara dinamis setelah halaman dimuat awalnya. Karena Cheerio menganalisis HTML statis, mungkin tidak menangkap konten yang dihasilkan secara dinamis, yang dapat membatasi efektivitas scraping.
Tindakan Anti-Scraping: Situs web menerapkan berbagai teknik anti-scraping untuk mencegah ekstraksi data otomatis:
CAPTCHA: Masalah besar yang mungkin Anda temui dalam scraping yang dirancang untuk membedakan manusia dari bot, CAPTCHA memerlukan pengguna untuk menyelesaikan tugas seperti pengenalan gambar atau input teks.
Pemblokiran IP: Situs web mungkin memblokir alamat IP yang terkait dengan aktivitas scraping untuk mencegah permintaan berlebihan.
Deteksi User-Agent: Mendeteksi user-agent yang tidak standar atau mencurigakan membantu situs web mengidentifikasi dan memblokir scraper.
Halaman Web Dinamis: Situs web yang menggunakan generasi konten JavaScript dinamis dapat menimbulkan tantangan karena konten mungkin tidak dapat diakses langsung melalui parsing statis Cheerio.
Sebagai pengembang web scraping, memahami tantangan ini penting untuk menangani mereka secara efektif. Ada banyak strategi untuk mengatasi solusi masalah ini, dan di halaman berikutnya, kami akan menjelaskan bagaimana menyelesaikan dua tantangan terbesar dalam scraping dengan solusi CAPTCHA dan cara menghadapi halaman dinamis:
Menangani CAPTCHA dalam Web Scraping
CAPTCHA menimbulkan tantangan signifikan dalam web scraping karena dirancang untuk membedakan manusia dari bot. Ketika menghadapi CAPTCHA, skrip scraping Anda harus menyelesaikannya untuk melanjutkan secara efisien. Untuk upaya web scraping yang skalabel, solusi seperti CapSolver menawarkan akurasi tinggi dan kemampuan penyelesaian CAPTCHA yang cepat.
Mengintegrasikan Solusi CAPTCHA
Berbagai layanan penyelesaian CAPTCHA dapat diintegrasikan ke dalam skrip scraping Anda. Di sini, kita fokus pada CapSolver:
Setelah mendaftar, ambil kunci API Anda dari halaman beranda.
Contoh Kode untuk Integrasi CapSolver
Mengintegrasikan CapSolver ke proyek web scraping atau otomasi Anda adalah hal yang sederhana. Berikut adalah contoh Python yang menunjukkan cara menggunakan API CapSolver:
pythonCopy
# pip install requests
import requests
import time
# TODO: atur konfigurasi Anda
api_key = "KUNCI_API_ANDA" # kunci API CapSolver Anda
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # kunci reCAPTCHA situs target
site_url = "" # URL situs target Anda
def solve_captcha():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Gagal membuat tugas:", res.text)
return
print(f"Dapatkan taskId: {task_id} / Mengambil hasil...")
while True:
time.sleep(3) # jeda
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Solusi gagal! Respons:", res.text)
return
captcha_token = solve_captcha()
print(captcha_token)
Skrip ini menunjukkan cara menggunakan API CapSolver untuk menyelesaikan tantangan reCAPTCHA. Mengintegrasikan solusi seperti ini ke dalam proyek scraping Anda meningkatkan efisiensi dengan mengotomatisasi penyelesaian CAPTCHA, sehingga mempercepat proses ekstraksi data.
Menangani Halaman Dinamis
Untuk halaman web yang memuat konten secara dinamis melalui JavaScript, Anda mungkin perlu menggunakan browser headless seperti puppeteer. Puppeteer dapat mensimulasikan penggunaan web nyata, memungkinkan Anda untuk mengambil konten yang hanya muncul setelah eksekusi JavaScript.
Contoh dengan Puppeteer
Berikut adalah contoh singkat tentang cara menggunakan Puppeteer bersamaan dengan Cheerio:
Skrip ini memulai browser headless, mengarahkan ke URL target, dan mengambil konten HTML setelah eksekusi JavaScript. Selanjutnya, skrip menggunakan Cheerio untuk menganalisis HTML dan mengekstrak data yang diinginkan.
Kesimpulan
Web scraping dengan Cheerio dan Node.js adalah kombinasi yang kuat untuk mengekstrak data dari situs web secara efisien. Sintaks seperti jQuery dari Cheerio membuatnya mudah untuk menelusuri dan memanipulasi dokumen HTML, sementara Node.js menyediakan lingkungan yang kuat untuk menangani permintaan HTTP dan memproses data.
Namun, pengembang harus menyadari tantangan yang ditimbulkan oleh konten dinamis dan tindakan anti-scraping seperti CAPTCHA. Mengintegrasikan solusi seperti CapSolver dapat membantu mengatasi hambatan ini, memastikan skrip scraping Anda tetap efektif dan andal.
Saya harap artikel ini membantu Anda memulai web scraping pada tahun 2026 dan memberikan data yang berguna untuk proyek Anda!
Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.