CAPSOLVER
Blog
Mengambil data web dengan Cheerio dan Node.js 2026

Pengambilan data web dengan Cheerio dan Node.js 2026

Logo of CapSolver

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:

bash Copy
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:

bash Copy
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:

  1. Memuat Dokumen HTML:

    javascript Copy
    const cheerio = require('cheerio');
    const html = `
      <html>
        <head>
          <title>Contoh</title>
        </head>
        <body>
          <h1 class="title">Halo, dunia!</h1>
          <div id="content">
            <p>Ini adalah paragraf.</p>
            <a href="https://example.com">Tautan</a>
          </div>
        </body>
      </html>
    `;
    const $ = cheerio.load(html);
  2. Memilih Elemen:

    • Selector Elemen:

      javascript Copy
      const h1 = $('h1'); // Memilih semua elemen <h1>
      console.log(h1.text()); // Output: Halo, dunia!
    • Selector Kelas:

      javascript Copy
      const title = $('.title'); // Memilih elemen dengan class="title"
      console.log(title.text()); // Output: Halo, dunia!
    • Selector ID:

      javascript Copy
      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:

      javascript Copy
      const link = $('a[href="https://example.com"]'); // Memilih elemen <a> dengan atribut href spesifik
      console.log(link.text()); // Output: Tautan
  3. Menelusuri dan Memanipulasi Elemen:

    • Menelusuri Elemen:

      javascript Copy
      $('p').each((index, element) => {
        console.log($(element).text()); // Output konten teks dari setiap elemen <p>
      });
    • Mengubah Konten Elemen:

      javascript Copy
      $('h1.title').text('Judul Baru'); // Mengubah konten teks dari elemen <h1>
      console.log($('h1.title').text()); // Output: Judul Baru
    • Menambahkan dan Menghapus Elemen:

      javascript Copy
      $('#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.

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:

javascript Copy
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

  1. Mengimpor Modul: Skrip dimulai dengan mengimpor modul axios dan cheerio.
  2. Mendefinisikan URL Target: URL situs web yang akan di-scrap ditentukan.
  3. Mengambil Data: Fungsi fetchData melakukan permintaan HTTP GET ke URL target menggunakan axios. Konten HTML respons kemudian dimuat ke Cheerio.
  4. Parsing HTML: Dengan sintaks seperti jQuery, skrip mengekstrak konten dari tag <title> dan semua tag <h1>, <h2>, dan <h3>.
  5. Menampilkan Hasil: Data yang diekstrak dicetak ke konsol.

Menjalankan Skrip

Untuk menjalankan skrip scraping, jalankan perintah berikut di terminal Anda:

bash Copy
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:

  1. 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.

  2. 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:

Langkah 1: Daftar ke CapSolver

Untuk memulai, navigasi ke panel pengguna CapSolver dan daftarkan akun Anda.

Langkah 2: Peroleh Kunci API Anda

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:

python Copy
# 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:

javascript Copy
const puppeteer = require('puppeteer');
const cheerio = require('cheerio');

async function fetchData() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');

  const content = await page.content();
  const $ = cheerio.load(content);

  const title = $('title').text();
  const headings = [];
  $('h1, h2, h3').each((index, element) => {
    headings.push($(element).text());
  });

  console.log('Judul:', title);
  console.log('Judul-judul:', headings);

  await browser.close();
}

fetchData();

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.

Lebih lanjut

Cara Mengatasi Captchas Saat Scrapping Web dengan Scrapling dan CapSolver
Cara Menyelesaikan Captchas Ketika Web Scraping dengan Scrapling dan CapSolver

Scrapling + CapSolver memungkinkan pengambilan data otomatis dengan ReCaptcha v2/v3 dan Cloudflare Turnstile bypass.

web scraping
Logo of CapSolver

Adélia Cruz

05-Dec-2025

Penyedotan Web dengan Selenium dan Python
Mengambil Data Web dengan Selenium dan Python | Menyelesaikan Captcha Saat Mengambil Data Web

Dalam artikel ini, Anda akan mengenal pengambilan data web menggunakan Selenium dan Python, serta mempelajari cara menyelesaikan Captcha yang terkait dalam proses untuk ekstraksi data yang efisien.

web scraping
Logo of CapSolver

Emma Foster

04-Dec-2025

Web Scraping dalam Golang dengan Colly
Web Scraping di Golang dengan Colly

Pada blog ini, kita akan menjelajahi dunia web scraping menggunakan Golang dengan pustaka Colly. Panduan ini dimulai dengan membantu Anda mengatur proyek Golang dan menginstal paket Colly. Kemudian kita akan membimbing Anda melalui pembuatan pengumpul dasar untuk mengekstrak tautan dari halaman Wikipedia, menunjukkan kemudahan penggunaan dan fitur canggih Colly.

web scraping
Logo of CapSolver

Nikolai Smirnov

04-Dec-2025

Apa Itu Web Scraping
Apa Itu Web Scraping | Contoh Penggunaan dan Masalah

Pelajari tentang web scraping: pelajari manfaatnya, atasi tantangan dengan mudah, dan tingkatkan bisnis Anda dengan CapSolver.

web scraping
Logo of CapSolver

Lucas Mitchell

03-Dec-2025

Apa itu puppeteer
Apa itu puppeteer dan cara menggunakannya dalam web scraping | Panduan Lengkap 2026

Panduan lengkap ini akan membahas secara mendalam apa itu Puppeteer dan cara menggunakannya secara efektif dalam pengambilan data web.

web scraping
Logo of CapSolver

Emma Foster

03-Dec-2025

Cara Membuat Agen AI Penyedot Web (Tutorial Ramah Pemula)
Cara Membuat Agen AI Pengambil Data Web (Panduan Ramah Pemula)

Pelajari cara membuat AI Agent Web Scraper dari awal dengan tutorial yang ramah pemula ini. Temukan komponen inti, contoh kode, dan cara mengatasi pengukuran anti-bot seperti CAPTCHAs untuk pengumpulan data yang andal.

web scraping
Logo of CapSolver

Emma Foster

02-Dec-2025