JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q28990F
  • License MIT

🍢 Skewer web data perfectly - Smart Indonesian web crawler library

Package Exports

  • sate.js
  • sate.js/src/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sate.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🍢 Sate.js

Skewer web data perfectly - Smart Indonesian web crawler library

npm version License: MIT Made in Indonesia Node.js

Sate.js adalah library web crawler yang powerful, cepat, dan mudah digunakan, dibuat khusus untuk developer Indonesia. Seperti sate yang menusuk daging dengan sempurna, Sate.js menusuk data web dengan presisi tinggi.

✨ Mengapa Sate.js?

  • 🍢 Perfect Skewering - Menusuk data web dengan presisi seperti sate
  • 🚀 Super Cepat - Tanpa Chromium, pure Node.js
  • 🤖 AI-Powered - Sentiment analysis, keyword extraction, language detection
  • 🇮🇩 Made in Indonesia - Dokumentasi bahasa Indonesia & English
  • 🔧 Feature Rich - 35+ fitur canggih untuk web crawling
  • 📊 Smart Analytics - Quality scoring & performance monitoring
  • 🌍 Universal - Mendukung semua jenis website
  • 💡 Easy to Use - API yang intuitif dan dokumentasi lengkap

📦 Installation

npm install sate.js

🚀 Quick Start

const SateJS = require('sate.js');

// Inisialisasi sate 🍢
const sate = new SateJS({
  userAgent: 'Sate.js Bot 🍢',
  timeout: 30000,
  delay: 1000
});

// Tusuk data dari website
async function runBasicExample() {
  try {
    const hasil = await sate.tusuk('https://example.com');

    console.log('Quality Score:', hasil.quality.overall);
    console.log('Sentiment:', hasil.sentiment.sentiment);
    console.log('Keywords:', hasil.keywords.slice(0, 5));
    console.log('Language:', hasil.language.fullName);
  } catch (error) {
    console.error('Error during basic usage:', error.message);
  }
}

runBasicExample();

🍢 Core Features

Sate.js menawarkan lebih dari 35 fitur canggih untuk kebutuhan web crawling dan analisis data Anda:

Data Extraction & Parsing

  1. tusuk(url, options): Metode utama untuk mengekstrak semua data dari URL.
  2. Metadata Extraction: Mengambil judul, deskripsi, kata kunci, canonical URL, Open Graph, dan Twitter Card.
  3. Link Extraction: Mengidentifikasi dan mengekstrak semua tautan internal dan eksternal.
  4. Image Extraction: Mengambil semua URL gambar beserta atribut alt dan title.
  5. Text Extraction: Mengekstrak teks lengkap, judul (H1-H6), jumlah kata, dan paragraf.
  6. Schema Extraction: Mendeteksi dan mengekstrak data terstruktur (JSON-LD).
  7. Form Extraction: Mengidentifikasi formulir HTML dan bidang inputnya.
  8. Table Data Extraction: Mengekstrak data dari tabel HTML menjadi format terstruktur.
  9. Contact Info Extraction: Mengekstrak alamat email, nomor telepon, dan tautan media sosial.
  10. Price Extraction: Mendeteksi dan mengekstrak informasi harga dari halaman.
  11. Date Extraction: Mengidentifikasi dan mengekstrak tanggal dari konten.
  12. Breadcrumbs Extraction: Mengekstrak struktur breadcrumb navigasi.
  13. Reviews Extraction: Mengidentifikasi dan mengekstrak ulasan atau testimoni.

AI-Powered Analysis

  1. Sentiment Analysis: Menganalisis sentimen (positif, negatif, netral) dari teks.
  2. Keyword Extraction: Mengekstrak kata kunci paling relevan dari konten.
  3. Language Detection: Mendeteksi bahasa utama konten.
  4. Readability Analysis: Menganalisis tingkat keterbacaan teks (Flesch Reading Ease Score).

Advanced Crawling & Monitoring

  1. tusukMassal(urls, options): Memproses banyak URL secara bersamaan dengan kontrol konkurensi dan penundaan.
  2. pantauPerubahan(url, interval, callback): Memantau perubahan konten pada URL tertentu secara berkala.
  3. jelajahiSitus(seedUrl, options): Menjelajahi struktur situs dari URL awal hingga kedalaman tertentu.
  4. buatPetaSitus(baseUrl, options): Membuat peta situs (sitemap) dalam format XML dari hasil penjelajahan.
  5. periksaTautanRusak(url, options): Memeriksa semua tautan di halaman dan melaporkan yang rusak.

Analytics & Insights

  1. analisisWarung(urls, options): Melakukan analisis kompetitor dengan membandingkan kualitas, kata kunci, dan sentimen.
  2. deteksiTeknologi(url): Mendeteksi teknologi yang digunakan oleh sebuah situs web (CMS, framework, analytics, CDN, dll.).
  3. bandingkanHalaman(urls, metrics): Membandingkan beberapa halaman berdasarkan metrik kualitas, performa, dan SEO.
  4. Quality Scoring: Memberikan skor kualitas keseluruhan dan perincian untuk SEO, aksesibilitas, performa, konten, dan teknis.
  5. Performance Monitoring: Melacak statistik performa crawling seperti waktu respons rata-rata, tingkat keberhasilan, dan permintaan tercepat/terlambat.
  6. Duplicate Content Detection: Mengidentifikasi konten yang duplikat atau hampir duplikat.
  7. URL Pattern Analysis: Mengkategorikan URL berdasarkan pola (gambar, dokumen, video, e-commerce, blog, dll.).

Utility & Quick Access

  1. ambilJudul(url): Mengambil judul halaman dengan cepat.
  2. ambilMetadata(url): Mengambil metadata halaman dengan cepat.
  3. ambilLink(url): Mengambil semua tautan dari halaman dengan cepat.
  4. ambilTeks(url, options): Mengambil teks lengkap dari halaman dengan cepat.
  5. ambilInsight(url): Memberikan ringkasan insight penting dari sebuah URL.
  6. getStatistikPerforma(): Mendapatkan statistik performa crawling saat ini.
  7. resetStatistikPerforma(): Mereset statistik performa.
  8. eksporData(format): Mengekspor data yang dikumpulkan dalam format JSON, CSV, atau XML.

📚 More Examples

1. Mass Data Processing

// Tusuk banyak URL sekaligus
const urls = [
  'https://github.com',
  'https://stackoverflow.com',
  'https://dev.to'
];

const massResults = await sate.tusukMassal(urls, {
  concurrent: 2,
  delay: 1000
});

console.log('Mass Processing Results:');
massResults.forEach((result, index) => {
  if (result.error) {
    console.log(`   ${index + 1}. ${result.url} - ERROR: ${result.error}`);
  } else {
    console.log(`   ${index + 1}. ${result.url} - Quality: ${result.quality?.overall || 0}/100`);
  }
});

2. Competitor Analysis

// Analisis kompetitor
const competitors = await sate.analisisWarung([
  'https://httpbin.org/html',
  'https://httpbin.org/json'
]);

console.log('Average Quality:', competitors.analisis.kualitasRataRata);
console.log('Popular Keywords:', competitors.analisis.katakunciPopuler.slice(0, 3));
console.log('Duplicate Content Detected:', competitors.analisis.kontenDuplikat.length);
// Periksa tautan rusak di sebuah halaman
const brokenLinksResult = await sate.periksaTautanRusak('https://example.com');

console.log('Total Links Checked:', brokenLinksResult.totalLinksChecked);
console.log('Broken Links Found:', brokenLinksResult.brokenLinks.length);
if (brokenLinksResult.brokenLinks.length > 0) {
  console.log('First Broken Link:', brokenLinksResult.brokenLinks[0]);
}