Python Web Crawling. Iseng Bermanfaat, Crawling Data Web Perpustakaan

(Getty Images/ People Images)

Sebagai mahasiswa tingkat akhir, galau terkait judul penelitian merupakan hal yang wajar. Butuh banyak bacaan maupun referensi judul penelitian yang diperlukan. Pilihannya adalah ke perpustakaan kampus. Bisa sekedar skimming melihat judul-judul penelitian terdahulu sampai membaca abstraknya.

Saya sebagai mahasiswa tingkat akhir merupakan salah satu yang galau terkait penentuan judul dan topik penelitian. Mesti ke perpustakaan kampus mungkin hanya sekedar melihat-lihat judul menjadi hal yang bagus. Perpustakaan sendiri memiliki web perpustakaan yang dapat kita gunakan untuk melihat judul yang sesuai. Jika klop, tandai kode penelitian dan ke kampus untuk membaca penelitian tersebut lebih dalam.

Namun, ada keterbatasan dalam pencarian judul di web perpustakaan sendiri. Saya merasa hasil pencarian berdasarkan kata kunci belum memiliki fitur ordering dan sorting berdasarkan tanggal maupun kode jurnal. Daftar penelitian pun terbatas yang bisa dilihat karna tidak ada fitur page length untuk mengatur banyak daftar jurnal dalam 1 tabel. Namun punya kelebihan dengan adanya filter judul berdasarkan alfabet serta fitur find similar jurnal. Fitur find similar ini pun kadang return error 500 internal error sehingga saya berpikir untuk mencoba melakukan sesuatu.

Dengan adanya keterbatasan itu, saya memiliki ide untuk melakukan crawl semua data judul, abstrak, kode, tahun dan author dari jurnal yang ada di database perpustakaan kampus. Saya disini menggunakan script python untuk melakukan crawling. Beberapa langkah yang saya lakukan akan saya jelaskan di bawah.

  1. Mempelajari bagaimana cara kerja sistem web perpustakaan. Dengan melakukan riset dan observasi terkait perpindahan rute url. Hal ini dilakukan untuk mendapatkan pola / pattern agar dapat mengetahui implementesi crawler berada dilevel apa. Apakah susah, sedang atau gampang.
  2. Menentukan langkah dan apa saja source library python yang digunakan untuk crawling
  3. Implementasi kode. Melakukan penyesuaian terhadap data-data apa saja yang mau diekstrak dari web.
  4. Lalu trial and error. Disini dapat diketahui pemanggilan uri di web perpustakaan tidak dapat dilakukan secara sinkronous / terus menerus. Jadi saya melakukan jeda selama beberapa detik dan retries terhadap panggilan yang gagal. Lalu menemukan bahwa, pemanggilan uri akan berhenti jika ada data penelitian yang tidak lengkap. Disini saya mengetahui ada data yang kadang tidak memiliki judul atau author.
  5. Lalu melakukan pemanggilan terhadap script.

Saya melakukan pemanggilan script dari trial and error sampai benar benar berhasil memakan waktu 1 jam karena teknis pemanggilan dan data. Untuk eksekusi final, saya membutuhkan waktu 30 menit lagi untuk crawling data dengan memanggil uri untuk mengambil 1000-an data tersebut.

Untuk python library yang saya gunakan tidak banyak. Hanya CSV, requests, Beautiful Soup, dan HTTPError. Dengan sedikit bantuan mbah google saya dapat menemukan library yang dibutuhkan.

Ada juga pertanyaan yang membuat saya penasaran, yaitu apakah web crawling ini ilegal?. Disebut ilegal ataupun tidak tergantung penggunaannya. Dalam hal ini, saya menggunakan untuk kepentingan pribadi saya yaitu untuk memutuskan judul dan topik berdasarkan referensi hasil crawling. Crawling yang tidak baik adalah yang tujuannya untuk mendapatkan keuntungan misal bisnis komersil atau diberikan kepada orang lain [1]. Jadi, saya tidak akan menyebarkan source code dan hasil dari crawling yang saya lakukan. Silahkan dapatkan sendiri. Do it on your own.

Sekian dari saya, semoga bermanfaat guys.

Catatan Kaki:
[1] https://towardsdatascience.com/is-web-crawling-legal-a758c8fcacde