Tukang Nyolong Itu Namanya Scrapper

Sejak dulu, saya suka menulis program kecil untuk mengisi waktu luang dan menghibur otak. Istilahnya coding for fun. Saya menulis di bahasa yang saya suka. Saya suka Java dan PHP. Saya tidak suka C, C++, .net framework, bash scripting, dan Perl. Belakangan sejak ada Raspberry Pi saya mulai menyukai Python.

Salah satu topik favorit saya adalah “mencuri” isi website lain yang tidak memiliki sarana untuk mengambil-dan-tampilkan-dalam bentuk lain. Sarana yang biasanya RSS Feed kan. Nah, saya selalu penasaran untuk mengambil konten yang mereka tidak sediakan RSS Feed-nya. Untuk apa, ya namanya juga suka-suka, bisa ditampilkan di web sendiri, atau disimpan di database.

Konsepnya adalah mendownload file source-nya (HTML atau XML) kemudian meng-extract isinya. Baru-baru ini saya baru tahu kalau istilah untuk nyolong isi begini namanya scrapping.

Contohnya, untuk melakukan analisis fundamental saham, saya harus menganalisa indikator-indikator keuangan seperti ROE, Net Income, EPS, dan PER-nya. Ada 400-an saham yang diperdagangkan di Bursa Efek Indonesia. Informasi begini ada di Router atau Bloomberg. Capek bo kalau buka satu-satu kemudian dimasukkan ke Excel untuk dianalisis.

Karena itu saya menulis baris program yang mendownload file-file HTML setiap saham tersebut lalu mengekstrak indikator-indikator keuangan itu. Saya harus mencari pola-pola yang jelas untuk setiap penanda di setiap baris dan kolom berapa yang mengandung informasi itu. Setelah diambil, semua isi disusun kembali dan langsung ditampilkan dalam format Excel. Selanjutnya saya bisa melakukan analisis fundamental seperti para investor itu.

Secara teknis, mencari pola-pola dalam teks ini bernama Regular Expression. Tapi siapa yang bisa regex di jaman modern ini? Saya cuma mengenal satu teman yang ahli regex dari dulu sampai sekarang. Saya juga ga bisa regex. Regex sangat memerlukan ketelitian, dan saya itu orangnya tidak teliti sehingga saya tidak pernah bisa menyusun regex yang benar-benar kuat.

Eh, ternyata, setelah saya tahu konsep nyolong ini namanya scrapping, sudah banyak orang yang menuliskan library untuk ini di berbagai bahasa. Don’t reinvent the wheel, kata orang manajemen. Di Python, saya menemukan lib yang nampaknya cukup bagus. Namanya Scrappy. Saya belum coba. Yang mau saya lakukan adalah mengekstrak jadwal TV dari beberapa situs TV berlangganan (Fox, AXN, Star World, dll), kemudian menjadikan satu di web lokal si Raspberry Pi.

Author: Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

6 thoughts

  1. ooooooooo.. seperti orang ngambil rate BCA dari web BCA resmi lalu ditampilkan ke webnya sendiri gitu tho bro? tapi mungkin belih rumit lagi ya, kalo cuman kayak BCA tadi kan gampil gampil gampil.. :d

    atau gini: ngambil transaksi terakhir di rekening ibanking, kalo ketemu nilai yang sama dengan invoice dan note-nya cocok, maka invoice bisa otomatis marked as paid, apa ini juga termasuk scrapping? kalo toh iya, mungkin tetep masuk yang gampil ya :d

  2. Itu sih kerjaan sehari2. :p
    Eniwei di python biasanya pakai combo scrappy+beautiful soup.

    Problemnya adalah kalau semuanya dipanggil di javascript. Itu yang aku belum ada solusinya. Misal google translate, itu kalau dibuka pagenya isinya javascript semua. Apa yang mau dicari polanya coba? :))

      1. Terlalu ribet. Nggak mungkin donlot offline content satu2 kalau requestnya 100-200k halaman sehari. :p

        Alternatif dulu pakai macroscript di firefox. Good enough kalau datanya masih 100-an. Di atas itu terlalu lama. 100 data bisa sekarang jalan besok baru kelar.

        Kita ngomongnya scale baby, scale. :p

Leave a Reply

Your email address will not be published. Required fields are marked *