Scraper jadwal sholat dari KEMENAG Indonesia.
Kemungkinan website KEMENAG menggunakan framework PHP CI (Code Igniter). Setiap kali kita melakukan request
, maka yang pertama kali di cek adalah session
pada cookies
.
Jadi, jika session
tidak ditemukan, maka halaman hanya akan dimuat secara standar, yaitu tanpa memuat <option></option>
untuk pilihan Provinsi dan Kabupaten. Oleh sebab itu, ketika melakukan request
pertama kali, kita harus menyimpan cookies
tujuannya untuk di gunakan pada request
berikutnya.
Lihat contoh
import requests
url_awal = "https://bimasislam.kemenag.go.id/jadwalshalat"
sesi = requests.session()
# ini adalah inisialisasi awal untuk mendapatkan cookies
# <option></option> masih belum di tampilkan oleh server
inisialisasi = sesi.get(url_awal)
data_cookies = inisialisasi.cookies
# ini adalah request kedua setelah kita mendapatkan cookies
# <option></option> sudah di tampilkan oleh server
ada = sesi.get(url_awal, cookies=data_cookies)
print(sesi.content)
# ... <select id="search_prov">\n\t
# <option value=\'<token>\' >PUSAT</option> ...
# <select> ...
from . import Sholat
jadwal = Sholat
kota = jadwal.cari_kabupaten("hulu")
print(kota)
Lihat hasil
{
"KAB. INDRAGIRI HULU": {"provinsi": "RIAU","x": "<tokenize>","y": "<tokenize>"},
"KAB. ROKAN HULU": {"provinsi": "RIAU","x": "<tokenize>","y": "<tokenize>"},
...
"KAB. HULU SUNGAI TENGAH": {"provinsi": "KALIMANTAN SELATAN","x": "<tokenize>","y": "<tokenize>"},
}
provinsi = jadwal.cari_provinsi("papua")
print(provinsi)
Lihat hasil
{
"KAB. ASMAT": {"provinsi": "PAPUA","x": "<tokenize>","y": "<tokenize>"},
"KAB. BIAK NUMFOR": {"provinsi": "PAPUA","x": "<tokenize>","y": "<tokenize>"},
...
"KAB. BOVEN DIGOEL": {"provinsi": "PAPUA","x": "<tokenize>","y": "<tokenize>"},
"KAB. DEIYAI": {"provinsi": "PAPUA","x": "<tokenize>","y": "<tokenize>"}
}
sehari = jadwal.sehari("KAB. BOVEN DIGOEL", 2022, 12, 23)
print(sehari)
Lihat hasil
{
"prov": "PAPUA",
"kabko": "KAB. BOVEN DIGOEL",
"lintang": "6\u00b0 5' 52.91\" S",
"bujur": "140\u00b0 17' 48.81\" E",
"data": {
"2022-12-23": {
"tanggal": "Jumat, 23/12/2022",
"imsak": "03:50",
"subuh": "04:00",
"terbit": "05:20",
"dhuha": "05:49",
"dzuhur": "11:41",
"ashar": "15:08",
"maghrib": "17:55",
"isya": "19:11"
}
}
}
sebulan = jadwal.sebulan("KAB. ROKAN HULU", 2022, 8)
print(sebulan)
Lihat hasil
{
"prov": "RIAU",
"kabko": "KAB. ROKAN HULU",
"lintang": "0\u00b0 53' 45.22\" N",
"bujur": "100\u00b0 18' 29.86\" E",
"data": {
"2022-08-01": {
"tanggal": "Senin, 01/08/2022",
"imsak": "04:52",
"subuh": "05:02",
"terbit": "06:17",
"dhuha": "06:45",
"dzuhur": "12:29",
"ashar": "15:50",
"maghrib": "18:33",
"isya": "19:45"
},
"2022-08-02": {
"tanggal": "Selasa, 02/08/2022",
"imsak": "04:52",
"subuh": "05:02",
"terbit": "06:17",
"dhuha": "06:45",
"dzuhur": "12:29",
"ashar": "15:50",
"maghrib": "18:33",
"isya": "19:44"
},
...
}