Scraper - Hadits Search

Mempelajari hadits adalah bagian penting dalam memahami Islam. Dengan kemajuan teknologi, kini kita dapat memanfaatkan pemrograman untuk mempermudah pencarian hadits secara digital.

Muhamad Nur Ibad

12 Januari 20251 menit baca

Membuat Pencarian Hadits dengan Node.js

Mempelajari hadits adalah bagian penting dalam memahami Islam. Dengan kemajuan teknologi, kini kita dapat memanfaatkan pemrograman untuk mempermudah pencarian hadits secara digital. Dalam artikel ini, kita akan membahas cara membuat pencarian hadits menggunakan Node.js dengan bantuan library axios dan cheerio.

Apa yang Akan Kita Bangun?

1. Pencarian Hadits: Mengambil daftar hadits berdasarkan kata kunci tertentu.

2. Detail Hadits: Mendapatkan detail lengkap sebuah hadits, termasuk teks Arab, nomor hadits, dan sumbernya.


Langkah-langkah Implementasi

Instalasi Library

Pastikan Anda sudah menginstal Node.js. Kemudian, instal library yang diperlukan menggunakan npm:

npm install axios cheerio


Kode Lengkap

Berikut adalah implementasi untuk pencarian hadits:

import axios from 'axios';
import * as cheerio from 'cheerio';

// Fungsi untuk mencari hadits berdasarkan kata kunci
export async function hadist(keyword) {
    const { data: html } = await axios.get(`https://www.hadits.id/tentang/${keyword}`);
    const $ = cheerio.load(html);

    let results = [];
    $('section').each((i, el) => {
        let judul = $(el).find('a').text().trim();
        let link = `https://www.hadits.id${$(el).find('a').attr('href')}`;
        let perawi = $(el).find('.perawi').text().trim();
        let kitab = $(el).find('cite').text().replace(perawi, '').trim();
        let teks = $(el).find('p').text().trim();

        results.push({ judul, link, perawi, kitab, teks });
    });

    return results;
}

// Fungsi untuk mendapatkan detail hadits berdasarkan URL
export async function detail(url) {
    const { data: html } = await axios.get(url);
    const $ = cheerio.load(html);

    const title = $('article h1').text().trim();
    const breadcrumb = [];
    $('div.breadcrumb-menu ol.breadcrumbs li').each((index, element) => {
        breadcrumb.push($(element).text().trim());
    });

    const hadithContent = $('article p.rtl').text().trim();
    const hadithNumber = $('header .hadits-about h2').text().match(/No. (\d+)/)[1];

    return {
        title,
        breadcrumb,
        haditsArab: hadithContent,
        hadithNumber,
    };
}

// Contoh Penggunaan
hadist('Bukhari').then((data) => {
    console.log('Hasil Pencarian:', data);
});

detail('https://www.hadits.id/hadits/bukhari/6886').then((info) => {
    console.log('Detail Hadits:', info);
});

Penjelasan Kode

a. Pencarian Hadits

Fungsi hadist menerima kata kunci dan mengirim permintaan GET ke situs hadits.id. Hasilnya berupa daftar hadits yang mencakup:

  • Judul: Nama hadits.

  • Link: URL untuk detail hadits.

  • Perawi: Sumber hadits (misalnya, Bukhari, Muslim).

  • Kitab: Kitab tempat hadits ditemukan.

  • Teks: Ringkasan isi hadits.

b. Detail Hadits

Fungsi detail mengambil detail lengkap sebuah hadits dari URL yang diberikan, termasuk:

  • Judul: Judul hadits.

  • Breadcrumb: Struktur navigasi untuk lokasi hadits.

  • Teks Arab: Isi hadits dalam bahasa Arab.

  • Nomor Hadits: Nomor identifikasi hadits.


Contoh Penggunaan

a. Pencarian Hadits

Untuk mencari hadits tentang Bukhari, gunakan kode berikut:

hadist('Bukhari').then((data) => {
    console.log('Hasil Pencarian:', data);
});

Output:

[
  {
    "judul": "Hadits tentang Bukhari",
    "link": "https://www.hadits.id/hadits/bukhari/6886",
    "perawi": "Bukhari",
    "kitab": "Kitab Shalat",
    "teks": "Isi singkat dari hadits tentang Bukhari..."
  }
]

b. Detail Hadits

Untuk mendapatkan detail hadits dari sebuah URL:

detail('https://www.hadits.id/hadits/bukhari/6886').then((info) => {
    console.log('Detail Hadits:', info);
});

Output:

{
  "title": "Hadits tentang Shalat",
  "breadcrumb": ["Home", "Bukhari", "Shalat"],
  "haditsArab": "إِنَّمَا الأَعْمَالُ بِالنِّيَّاتِ ...",
  "hadithNumber": "6886"
}

Kesimpulan

Dengan kode ini, Anda dapat membuat aplikasi sederhana untuk pencarian hadits dan menampilkan detailnya. Hal ini sangat bermanfaat untuk keperluan belajar Islam secara digital. Anda juga dapat mengembangkan fitur lebih lanjut, seperti filter berdasarkan kitab atau perawi tertentu.

Semoga artikel ini membantu Anda memahami cara membangun pencarian hadits menggunakan Node.js!

Author: Selxyz