Tested di python 3.11.7
api.py- Mengambil data dari api kpu
api_kawalpemilu.py- Mengambil data dari api kawalpemilu
scraping_validation.py- Program untuk membandingkan antara jumlah suara paslon dan suara sah yang diambil dari KPU Pemilu 2024
- Output merupakan 2 file csv di folder result dengan format:
result-[nama_file_json]-[timestamp].csverror_result-[nama_file_json]-[timestamp].csv
scraping_to_spreadsheet.py- Program untuk mengambil data dari KPU Pemilu 2024 dan Kawal Pemilu
- Output berupa file csv di folder result dengan format:
result-[nama_kota/kabupaten]-[date].csv
- File csv akan di upload ke google spreadsheet
app.py- Program ini menggunakan flask untuk membuat api yang menyediakan endpoint untuk trigger scraping_to_spreadsheet.py
- Menggunakan Celery untuk menjalankan job secara async/background
- Endpoint yang tersedia:
/- untuk menampilkan halaman utama
/scrap-all- untuk scraping semua data
/scrap/[kode_provinsi]- untuk scraping data berdasarkan kode provinsi
/scrap/[kode_provinsi]/[kode_kabupaten]- untuk scraping data berdasarkan kode kabupaten
/scrap-status- untuk melihat status scraping
/scrap-status/[task_id]- untuk melihat status scraping berdasarkan task_id
/scrap-terminate-all- untuk menghentikan job scraping semua data
/scrap-terminate- untuk menghentikan semua job scraping yang sedang berjalan
/scrap-terminate/[kode_provinsi]- untuk menghentikan job scraping berdasarkan kode provinsi
/scrap-terminate/[kode_provinsi]/[kode_kabupaten]- untuk menghentikan job scraping berdasarkan kode kabupaten
- Clone repository
git clone https://github.com/rfaturriza/kpu2024 - Pastikan python sudah terinstall, tested
python3.11.7 - Pindah directory ke folder kpu2024
cd kpu2024 - Install requirements
pip3 install -r requirements.txt - Untuk menjalankan scraping_validation.py
python3 scraping_validation.py - Untuk menjalankan scraping_to_spreadsheet.py
python3 scraping_to_spreadsheet.py - Untuk menjalankan
app.py- Install redis
- Website: redis.io
- Mac OS: Redis Mac OS
- Windows: Redis WIN
- Linux: Redis Linux
- Jalankan Flask
flask run - Jalankan Celery (async task python)
celery -A app.celery worker --loglevel=info - Biasanya program akan jalan di port 5000. Buka browser dan akses
http://localhost:5000/
- Install redis