Pengikisan web dalam JavaScript : Panduan lengkap

Penulis :

Bereaksi :

Komentar

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

Scraping web dengan JavaScript.
Pengikisan web dengan JavaScript. Cristina untuk Alucare.fr

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:

  1. Identifikasi apakah halaman tersebut statis Di mana dinamika.
  2. Untuk halaman statis, gunakan Cheerio untuk mengekstrak HTML secara langsung.
  3. Untuk halaman dinamis, gunakan Puppeteer atau Playwright untuk mensimulasikan peramban, tunggu hingga konten dimuat sepenuhnya, lalu ekstrak data.
  4. 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!

Suka? Bagikan!

Konten ini aslinya adalah di Perancis (Lihat editor tepat di bawah). Buku ini telah diterjemahkan dan dikoreksi dalam berbagai bahasa menggunakan Deepl dan/atau Google Translate API untuk menawarkan bantuan di sebanyak mungkin negara. Penerjemahan ini menghabiskan biaya beberapa ribu euro per bulan. Jika terjemahan ini tidak 100 % sempurna, tinggalkan komentar agar kami dapat memperbaikinya. Jika Anda tertarik untuk mengoreksi dan meningkatkan kualitas artikel yang diterjemahkan, silakan kirim email kepada kami menggunakan formulir kontak!
Kami menghargai umpan balik Anda untuk meningkatkan konten kami. Jika Anda ingin memberikan saran perbaikan, silakan gunakan formulir kontak kami atau tinggalkan komentar di bawah ini. Komentar Anda selalu membantu kami meningkatkan kualitas situs web kami Alucare.fr


Alucare adalah media independen. Dukung kami dengan menambahkan kami ke favorit Google News Anda:

Kirimkan komentar di forum diskusi