Crawling Ajax Menggunakan Python3

Zahrul Zizki
3 min readApr 29, 2021

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

Website Akreditasi Sekolah oleh 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 :

  1. Browser Chrome
  2. Python3
  3. Jupyter Notebook
  4. 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.

Script yang bisa didapatkan dengan inspect element pada Browser

Pada script diatas kita mendapatkan 2 script ajax yang berguna untuk memberikan output data pada saat terjadi interaksi pada browser:

SCRIPT 1

Script Untuk Medapatkan dropdown kabupaten Kota pada Provinsi yang dipilih

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

kita dapat melihat output pada console dengan sedikit melakukan editing pada script tersebut dengan menambahkan “console.log(data)
Ketika memanggil fungsi tersebut pada console,outputnya adalah berupa html untuk dropdown

Script 2

Script Untuk mendapatkan table data

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

Berikut salah satu cara memanggil
Output Dari Ajax
Output jika dilihat dari Network pada Browser

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

--

--