Scrape Data Al-Quran lengkap dari quran.nu.or.id.
Butuh Node.js 18 ke atas. Tanpa npm install apa pun.
node scrape.jsHasilnya masuk ke data/quran-nu.json (sekitar 100+ MB dengan tafsir).
Opsi lain:
node scrape.js --no-tafsir # skip tafsir
node scrape.js --surah=al-fatihah # scrape satu surah untuk tes
node scrape.js --out=data/mini.jsonimport data from './data/quran-nu.json' assert { type: 'json' };
const fatihah = data.surahs.find(s => s.slug === 'al-fatihah');
for (const ayat of fatihah.verses) {
console.log(ayat.number, ayat.text);
console.log(ayat.transliteration);
console.log(ayat.translation_id);
}Tafsir per ayat:
const ayat1 = fatihah.verses[0];
console.log(ayat1.tafsir_wajiz);
console.log(ayat1.tafsir_tahlili);Cari satu ayat spesifik:
const baqarah255 = data.surahs
.find(s => s.slug === 'al-baqarah')
.verses.find(v => v.number === 255);{
"meta": { "surah_count": 114, "verse_count": 6236, ... },
"surahs": [
{
"id": 1, "name": "Al-Fatihah", "slug": "al-fatihah",
"translate": "Pembukaan", "type": "Makkiyah",
"verse_count": 7, "juz_id": 1,
"verses": [
{
"id": 1, "number": 1, "juz_id": 1, "surah_id": 1,
"text": "بِسْمِ اللّٰهِ...",
"transliteration": "bismillâhir-rahmânir-rahîm",
"translation_id": "Dengan nama Allah...",
"translation_en": "In the name of Allāh...",
"translation_my": "...", "translation_de": "...",
"translation_tr": "...", "translation_fr": "...",
"tajweed": [{ "class": "...", "start_baris": 6, ... }],
"tafsir_wajiz": "...",
"tafsir_tahlili": "..."
}
]
}
],
"tahlil": [{ "text": "...", "transliteration": "...", "translation_id": "..." }],
"doa": [{ "slug": "doa-keseharian", "items": [...] }],
"wirid": [{ "slug": "wirid-harian", "items": [...] }],
"maulid": [{ "slug": "maulid-dibai", "items": [...] }]
}
Seluruh teks dari quran.nu.or.id milik NU Online. Repo ini hanya sediakan script scrape dan format ulang ke JSON untuk kemudahan.
MIT. LICENSE.
Punya waktu dan rezeki lebih? Traktir kopi biar script lain ikut lahir.