Scraper - Jadwal Sholat

Web scraping adalah teknik pengambilan data dari suatu situs web secara otomatis. Salah satu aplikasi praktis dari web scraping adalah mengambil jadwal sholat dari situs tertentu untuk keperluan pribadi atau aplikasi.

Muhamad Nur Ibad

13 Januari 20251 menit baca

Membuat Scraper Jadwal Sholat dengan Node.js dan Cheerio

Web scraping adalah teknik pengambilan data dari suatu situs web secara otomatis. Salah satu aplikasi praktis dari web scraping adalah mengambil jadwal sholat dari situs tertentu untuk keperluan pribadi atau aplikasi. Artikel ini membahas cara membuat scraper jadwal sholat menggunakan Node.js, Axios, dan Cheerio.

Mengapa Scraper Jadwal Sholat?

Jadwal sholat sangat penting bagi umat Muslim untuk melaksanakan ibadah tepat waktu. Dengan scraper, kita dapat mengotomatisasi pengambilan data jadwal sholat sesuai lokasi yang diinginkan, sehingga jadwal ini dapat diintegrasikan ke dalam aplikasi atau sistem lainnya.

Teknologi yang Digunakan

  1. Node.js: Runtime JavaScript untuk menjalankan kode di luar browser.

  2. Axios: Digunakan untuk mengambil data dari situs web.

  3. Cheerio: Library untuk memanipulasi dan mengambil elemen dari HTML seperti jQuery.

Langkah-langkah Membuat Scraper Jadwal Sholat

1. Instalasi Library

Sebelum memulai, pastikan Node.js sudah terinstal. Kemudian, instal library yang dibutuhkan:

npm install axios cheerio

2. Membuat Fungsi Scraper

Berikut adalah kode untuk scraper jadwal sholat:

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

export async function jadwalSholat(kota) {
  try {
    // Ambil data HTML dari situs
    const { data } = await axios.get(`https://jadwal-sholat.tirto.id/kota-${kota}`);
    const $ = cheerio.load(data);

    // Ekstrak jadwal sholat untuk hari ini
    const jadwalHariIni = $('tr.currDate td').map((i, el) => $(el).text()).get();

    // Pastikan data lengkap
    if (jadwalHariIni.length === 7) {
      const [tanggal, subuh, duha, dzuhur, ashar, maghrib, isya] = jadwalHariIni;
      return {
        tanggal,
        subuh,
        duha,
        dzuhur,
        ashar,
        maghrib,
        isya
      };
    } else {
      return { error: 'Jadwal sholat tidak ditemukan' };
    }
  } catch (error) {
    return { error: 'Terjadi kesalahan saat mengambil data' };
  }
}

// Contoh penggunaan
jadwalSholat("medan").then(jadwal => {
  console.log(jadwal);
});

3. Penjelasan Kode

  • URL Dinamis: URL https://jadwal-sholat.tirto.id/kota-${kota} memungkinkan kita untuk mengambil data jadwal berdasarkan kota tertentu.

  • Cheerio: Digunakan untuk mengekstrak elemen jadwal sholat dari tabel HTML. Elemen yang dipilih adalah baris dengan kelas currDate.

  • Error Handling: Sistem menangani kemungkinan kesalahan seperti koneksi gagal atau elemen tidak ditemukan.

4. Output

Jika data ditemukan, scraper akan mengembalikan jadwal sholat dalam format:

{
  "tanggal": "13 Januari 2025",
  "subuh": "05:00",
  "duha": "06:30",
  "dzuhur": "12:00",
  "ashar": "15:30",
  "maghrib": "18:00",
  "isya": "19:15"
}

Jika terjadi kesalahan, akan ditampilkan pesan:

{ "error": "Terjadi kesalahan saat mengambil data" }

Keuntungan Scraper Jadwal Sholat

  • Otomatisasi: Data diperbarui secara real-time dari situs web.

  • Fleksibilitas: Bisa disesuaikan untuk berbagai kota.

  • Integrasi Mudah: Hasil dapat digunakan dalam aplikasi atau layanan web.

Kesimpulan

Dengan menggunakan Axios dan Cheerio, Anda dapat dengan mudah membuat scraper untuk mengambil jadwal sholat dari situs web. Pastikan Anda menggunakan data ini secara etis dan mematuhi ketentuan penggunaan situs yang Anda ambil. Scraper ini juga dapat diintegrasikan ke dalam berbagai aplikasi seperti pengingat sholat atau dashboard jadwal sholat.