Petualangan Membuat CLI untuk Scraping Grup Facebook

Petualangan Membuat CLI untuk Scraping Grup Facebook

Bayangkan kamu adalah seorang petualang di dunia digital, bernama Sodikin, yang punya misi besar: mengumpulkan daftar anggota dari sebuah grup Facebook untuk analisis komunitas. Tapi, Sodikin nggak mau ribet nulis kode berulang-ulang atau ketik perintah manual setiap kali. Dia ingin alat yang keren, praktis, dan bisa dijalankan dari terminal dengan sekali ketik, seperti seorang penyihir yang melontarkan mantra. Di sinilah petualangan Sodikin dengan Typer dan argparse dimulai!

Bab 1: Misi Awal dan Senjata Playwright

Sodikin sudah punya kode dasar menggunakan Playwright, sebuah alat ajaib untuk mengendalikan browser secara otomatis. Dengan kode ini, dia bisa membuka grup Facebook, mengklik tombol “Lihat semua” di daftar anggota, dan menggulir halaman untuk mengambil nama, link profil, dan waktu partisipasi anggota. Tapi, kode itu masih “manual banget.” Sodikin harus ubah-ubah ID grup di kode setiap kali mau scrape grup lain, dan itu bikin dia jengkel. “Harus ada cara yang lebih elegan!” pikirnya.

Sodikin ingin alat yang bisa dijalankan dengan perintah sederhana seperti:

python main.py list-anggota --id-group 347681852305942

Atau bahkan membuka halaman grup dengan:

python main.py buka-grup --id-group 347681852305942

Maka, dia memutuskan untuk mencari senjata baru: sebuah CLI (Command Line Interface).

Bab 2: Bertemu Typer, Si Penyihir Modern

Sodikin mendengar kabar tentang Typer, sebuah library Python yang katanya bisa bikin CLI dengan mudah, seperti menulis mantra dengan gaya modern. Typer punya kelebihan: ringkas, mendukung type hint (seperti sahabat FastAPI), dan bisa bikin bantuan otomatis yang cantik di terminal. Sodikin langsung jatuh cinta.

Dia mulai dengan menginstal Typer:

pip install typer[all]

Lalu, Sodikin merapalkan mantra pertamanya. Dia ubah kode Playwright-nya jadi CLI dengan Typer. Dia buat dua perintah: satu untuk membuka grup (buka-grup) dan satu untuk mengambil daftar anggota (list-anggota). Kodenya jadi seperti ini:

  • Inisiasi: Sodikin bikin kelas FacebookWeb yang mengatur browser Playwright dan profil Chrome-nya.
  • Perintah Typer: Dia tambahkan dekorator @app.command() untuk bikin dua fungsi CLI:
  • list_anggota(id_group: str): Mengambil daftar anggota grup berdasarkan ID.
  • buka_grup(id_group: str): Membuka halaman grup di browser.
  • Output: Semua print diubah jadi typer.echo supaya lebih rapi.

Hasilnya? Sodikin bisa menjalankan:

python main.py list-anggota --id-group 347681852305942

Dan voila! Browser terbuka, halaman anggota grup dimuat, dan daftar anggota mulai dikumpulkan dengan rapi. Typer bahkan bikin bantuan otomatis:

python main.py --help

Menampilkan panduan yang jelas tentang perintah dan opsi. Sodikin merasa seperti penyihir teknologi sejati!

Bab 3: Argparse, Si Ksatria Klasik

Tapi, Sodikin adalah petualang yang penasaran. Dia dengar ada opsi lain: argparse, library bawaan Python yang lebih “klasik.” Argparse nggak perlu diinstal, jadi cocok kalau dia nggak mau tambah dependensi. Sodikin coba bereksperimen.

Dia ubah kode Typer-nya jadi argparse. Caranya:

  • Buat parser utama untuk menangani perintah.
  • Tambah subparser untuk dua perintah: list-anggota dan buka-grup.
  • Setiap perintah punya argumen --id-group yang wajib diisi.

Kodenya sedikit lebih panjang dan “bertele-tele” dibanding Typer, tapi berhasil! Sodikin tetap bisa jalankan perintah yang sama:

python main.py list-anggota --id-group 347681852305942

Outputnya sama, tapi Sodikin perhatikan argparse nggak se-“mempesona” Typer. Bantuan otomatisnya standar, nggak ada dukungan auto-completion di terminal, dan kodenya terasa lebih kaku. “Hmm, Typer lebih keren, tapi argparse setia karena bawaan Python,” pikir Sodikin.

Bab 4: Pilih Mana, Typer atau Argparse?

Sodikin duduk di tepi “hutan kode” dan merenung. Dia bandingkan keduanya:

  • Typer: Seperti pedang ajaib yang ringan, modern, dan bikin CLI cantik. Cocok untuk proyek modern, tapi butuh instalasi.
  • Argparse: Seperti perisai tua yang kokoh, selalu ada di Python, tapi agak kuno dan verbose.

Karena Sodikin suka gaya modern dan nggak keberatan instal library, dia pilih Typer. Tapi dia simpan argparse di “gudang pengetahuan” untuk proyek yang butuh solusi bawaan.

Bab 5: Mimpi Besar Sodikin

Sodikin nggak berhenti di sini. Dia mimpi punya CLI yang lebih hebat:

  • Menyimpan hasil scrape ke file CSV untuk analisis.
  • Login otomatis ke Facebook (meski ini tricky karena keamanan).
  • Mungkin download foto profil anggota (dengan izin, tentu!).

Dia tahu, dengan Typer, dia bisa tambah perintah baru, seperti:

python main.py list-anggota --id-group 347681852305942 --save-to-csv members.csv

Tapi itu cerita untuk petualangan berikutnya. Untuk sekarang, Sodikin puas dengan CLI-nya yang bisa scrape grup Facebook dengan satu perintah. Dia menutup laptopnya, tersenyum, dan berkata, “Misi selesai… untuk hari ini!”

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *