Crawling Ajax Menggunakan Python3
AJAX adalah singkatan dari Asynchronous JavaScript and XML yang memungkinkan Anda untuk mengambil konten dari server back-end secara tidak sinkron, tanpa perlu merefresh halaman. Dengan menggunakan Ajax, maka memungkinkan Anda sebagai penggunanya untuk memperbarui konten halaman web tanpa memuat ulang atau reload.
Ketika melakukan crawling dengan menggunakan python,terkadang kita mendapatlan case ketika kita harus melakukan crawling website dengan menggunakan AJAX.
karena input dari ajax bersifat selalu berubah ubah ketika user melakukan interaksi dan tidak mengubah URL dari website,maka untuk melakukan crawling dengan Library biasa seperti BeautyfulSoap dan library crawling lainnya sangat sulit.oleh karena itu disini saya akan memberikan salah satu cara alternatif yang cukup efektif untuk melakukan Crawling website yang menggunakan Ajax.
Dalam contoh kali ini saya akan memberikan contoh penggunaan Network Debugging untuk Keperluan Crawling Ajax dengan Python.
Tujuan :
Tujuan dari yang akan kita lakukan adalah melakukan Crawling Table Data secara Otomatis Untuk AKREDITASI SEKOLAH dari data KEMENDIKBUD
Data diatas merupakan salah satu sample data yang akan kita ambil,
dimana kita memerlukan semua data dari berbagai kategori yang perlu kita dapatkan
Tahap Persiapan :
- Browser Chrome
- Python3
- Jupyter Notebook
- Library Python :
-Pandas
-request
-bs4
Website :
STEP :
1.Membuka Chrome Developer Mode
“Untuk Membuka Developer Mode Kita dapat menggunakan
Shortcut Ctrl + Shift + I Pada Windows
atau
Cmd+Opt+I Pada Mac
atau
dengan Klik kanan pada browser ,lalu Klik Inspect”
Pada saat ini,kita perlu membuka delevoper mode pada browser untuk mendapatkan script Ajax yang awalnya dengan bahasa javascript untuk kita ubah dengan menggunakan python untuk kepeluan Crawling.
Pada script diatas kita mendapatkan 2 script ajax yang berguna untuk memberikan output data pada saat terjadi interaksi pada browser:
SCRIPT 1
Pada Script diatas input yang perlu diberikan adalah id provinsi
dan output yang diberikan adalah kabupaten dan kota beserta id nya yang sesuai dengan parameter id provinsi yang kita inputkan.
ouput pada script diatas digunakan sebagai input untuk script selanjutnya
Script 2
Script Kedua ini digunakan untuk mendapatkan data table akreditasi sekolah,
untuk memanggil script ini kita perlu memberikan beberapa parameter sebagai fiter yaitu:
1.Keyword
2.ID Provinsi
3.ID Kabupaten
4.Jenjang
5.Status
6.Tahun
7.Peringkat
tidak semua harus diisi,tapi parameter tersebut digunakan untuk melakukan Filter data
Setelah kita memahami bagaimana script tersebut bekerja,
langkah Selanjutnya adalah membuat request ajax dari script diatas dengan menggunakan python3
Berikut adalah Source Codenya :
https://github.com/zahrul100/DX_PARAMETER/blob/main/KEMENDIKBUD/Sharing_Session.ipynb