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

Larangan IP pada 2026: Bagaimana Cara Kerjanya dan Cara Praktis untuk Menghindarinya
Larangan IP pada 2026: Bagaimana Cara Kerjanya dan Cara Praktis untuk Mengelaknya

Pelajari cara menghindari pembatasan IP pada 2026 dengan panduan lengkap kami. Temukan teknik pemblokiran IP modern dan solusi praktis seperti proxy residensial dan solver CAPTCHA.

web scraping
Logo of CapSolver

Emma Foster

26-Jan-2026

Maxun dengan Integrasi CapSolver
Cara Menyelesaikan Captcha di Maxun dengan Integrasi CapSolver

Panduan praktis untuk mengintegrasikan CapSolver dengan Maxun dalam penggunaan nyata pengambilan data web. Pelajari cara mengelola reCAPTCHA, Cloudflare Turnstile, dan situs yang dilindungi CAPTCHA dengan menggunakan alur kerja pre-auth dan robot.

web scraping
Logo of CapSolver

Adélia Cruz

21-Jan-2026

Browser4 dengan Integrasi CapSolver
Cara menyelesaikan Captcha di Browser4 dengan integrasi CapSolver

Otomasi Browser4 dengan throughput tinggi dikombinasikan dengan CapSolver untuk menangani tantangan CAPTCHA dalam ekstraksi data web skala besar.

web scraping
Logo of CapSolver

Anh Tuan

21-Jan-2026

Apa Itu Bot Scraping dan Cara Membuatnya
Apa itu Bot Scraping dan Bagaimana Cara Membuatnya

Pelajari apa itu bot scraping dan cara membuatnya untuk ekstraksi data otomatis. Jelajahi alat terbaik, teknik navigasi keamanan, dan praktik scraping yang etis.

web scraping
Logo of CapSolver

Emma Foster

16-Jan-2026

Scrapy vs. Selenium
Scrapy vs. Selenium: Mana yang Terbaik untuk Proyek Scraping Web Anda?

Temukan kekuatan dan perbedaan antara Scrapy dan Selenium untuk pengambilan data web. Pelajari alat mana yang paling sesuai dengan proyek Anda dan cara mengatasi tantangan seperti CAPTCHA.

web scraping
Logo of CapSolver

Emma Foster

14-Jan-2026

Cara Menggunakan Selenium Driverless untuk Web Scraping
Cara Menggunakan Selenium Driverless untuk Pengambilan Data Web yang Efisien

Pelajari cara menggunakan Selenium Driverless untuk pengambilan data web yang efisien. Panduan ini memberikan instruksi langkah demi langkah tentang menyiapkan lingkungan Anda, menulis skrip Selenium Driverless pertama Anda, dan menangani konten dinamis. Mempermudah tugas pengambilan data web Anda dengan menghindari kompleksitas manajemen WebDriver tradisional, sehingga membuat proses ekstraksi data Anda lebih sederhana, lebih cepat, dan lebih portabel.

web scraping
Logo of CapSolver

Aloísio Vítor

14-Jan-2026