Membuat RSS Feed untuk Blog-Indonesia

Posted by: on Feb 11, 2008 | 28 Comments

Blog-Indonesia, mungkin adalah salah satu agregator blog terbesar di Indonesia. Blog ini memiliki sekitar 5500-an anggota yang terdaftar. Dari waktu ke waktu, agregator ini menyedot feed dari blog-blog anggota dan menampilkannya kembali dalam satu kesatuan.

Adanya RSS Feed dan datangnya Google Reader praktis mengubah cara saya dalam mengambil informasi dari internet. Sekarang, semua yang ada RSS-nya saya masukkan ke dalam Google Reader dan membacanya dari situ. Tapi tentunya malas juga kalau harus memasukkan satu per satu dari ribuan feed yang ada di internet. Oleh karena itu, saya lebih suka subscribe feed dari aggregator semacam Planet Terasi dan Merdeka. Maraknya komunitas blogger akhir-akhir ini juga cukup memberi harapan bagi saya. Tapi sayangnya hampir semua komunitas itu tidak menyediakan agregator untuk anggotanya. Komunitas ini mungkin lebih mirip dengan komunitas para breaker radio amatir dulu waktu saya aktif di jalur FM dan SW (ORARI registered user: yengki-delta-bla bla).

Blog-Indonesia sangat menjanjikan. Sayang beribu sayang, mereka tidak punya feed. Atau saya yang tidak tahu? Saya sudah ubek-ubek situs itu buat mencari sebuah file XML berspesifikasi RSS. RSS Feed yang saya dapatkan hanya berisi link yang menuju ke halaman web, bukan entrian posting seperti layaknya sebuah agregator. Ah!

Kebetulan, weekend ini saya memiliki waktu luang. Mau hunting foto… Jakarta sedang diguyur hujan lebat. Jadi saya berpikir, kenapa saya tidak buat sendiri saja RSS Feed-nya? Mengulang saat-saat saya masih memakai www.galihsatria.com yang berbasis JSF (Java Server Faces) sebagai situs utama saya. Saya tinggal ekstrak data-data yang saya perlukan dari blog-indonesia dan saya keluarkan kembali hasilnya sebagai feed. Karena saya tidak bisa memakai Java lagi di server ini, maka saya terpaksa memakai PHP. Agak sedikit aneh juga kalau sudah terbiasa dengan Java yang sangat kaku terhadap tipe data menghadapi PHP yang longgar.

Hasilnya? Daily entry bisa di-subscribe di sini, sedangkan untuk most popular bisa di-subscribe di sini. Namanya juga iseng-iseng, aplikasi ini sangat tidak stabil. Tapi lumayan lah buat saya, paling tidak saya bisa mengikuti apa yang terjadi di blog-indonesia via Google Reader saya.

*

Anyway,  bagi saya, menulis baris-baris kode program adalah salah satu hal yang sangat menyenangkan. Apalagi jika ada hal-hal baru. Seperti kali ini, saya ingin memperdalam kungfu dalam hal Regular Expression. Saya sadar, regex sangat powerfull dalam hal pengenalan pola-pola teks, tetapi struktur kode-nya memang bikin putus asa. Saya biasanya lebih suka mengolah pola-pola teks dalam tumpukan prosedur-prosedur substring. Meskipun lebih panjang, tetapi jauh lebih santai. Kali ini, saya memaksakan diri untuk memakai regex yang lebih cepat. Walhasil, untuk parser RSS Blog-Indonesia, ada beberapa hal yang menarik:

  • Langkah pertama, dapatkan file HTML-nya. Amati pola-polanya. Situs-situs yang memiliki sesuatu yang diulang seperti blog atau berita selalu memiliki pola yang mudah dilihat. Dari sini, definisikan pola tersebut dalam ekspresi regex.  Meskipun memungkinkan mendapatkan semua yang kita butuhkan dalam satu pola regex, namun saya lebih suka melakukannya dalam beberapa langkah. Sekedar agar sedikit bisa dibaca kode regex-nya. :D
  • Pola untuk mendapatkan kotak bloglist:
    /(<div class=”bloglist[alternate]*”>)+(<([a-z0-9]+)[^>]*>.*?<\/\3>)*<\/div>/
  • Setelah mendapatkan kotak itu, ekstrak data-data yang kita perlukan seperti judul posting, link, nama penulis, dan waktu publikasi.
  • Ini pola untuk mendapatkan isi didalam kotak bloglist: /(<([a-z0-9]+)[^>]*>)+(.*?)</
  • Mendapatkan link posting memakai pola ini: /<a\starget=”_blank”\shref=”(.*?&amp;.*?)”/
  • Dan akhirnya, memecah tanggal posting dengan pola: /([0-9]{1,2})\s(\w+)\s([0-9]{1,2})\s-\s([0-9]{1,2}):([0-9]{1,2})/

Kode yang rumit. Regex adalah hal yang paling saya benci setelah Javascript. Andai dulu saya tidak tidur waktu kuliah Teori Bahasa dan Otomata-nya Bu Chastine Fatichah, mungkin saya tidak selambat ini dalam belajar regex. Sekarang, saya mulai mengerti kekuatan regex yang tersembunyi dalam kode yang rumit itu.

28 Comments

  1. budi
    February 11, 2008

    wah, baru kali ini tahu smilies juga bisa di-regex :D

    Reply
  2. Nike
    February 11, 2008

    *Nyut-nyutan liat regex :)

    Reply
  3. Galih Satria
    February 11, 2008

    #budi:
    iyo ki… plugine priyadi ngebug… :P

    #Nike:
    :) juga deh :D

    Reply
  4. dnial
    February 12, 2008

    itu smiley-nya harus dimasukin juga ya?

    *nggak paham*

    Reply
  5. tukang foto keliling
    February 12, 2008

    gak mudeng :( (

    Reply
  6. Galih Satria
    February 12, 2008

    #dnial:
    nggak harus dimasukkan, cukup masukkan link yang sudah saya berikan di RSS Reader-mu.

    #tukang foto keliling:
    ini kesalahan pasti di saya, maafkan saya tidak bisa mendeskripsikan sesuatu dalam bahasa awam. :)

    Reply
  7. abdulmuneverlose
    February 12, 2008

    wew … ada beberapa karakter jadi smiley :) )
    : + ( = :(

    piye baca kodingannya ini ? :P

    Reply
  8. begadang
    July 7, 2008

    blum bisa neh bang, gw msh belajar

    Reply
  9. ocid
    August 28, 2008

    ternyata bukan pelajaran yang sederhana :(

    Reply
  10. Ade
    December 31, 2008

    Susah juga y! :)

    Reply
  11. yan
    January 4, 2009

    mas mau nanya jadi kalau diblogger khan ada page elemennya
    yang bisa buat add rss, itu caranya gimana???

    oh ya apa rss bisa meningkatkan PR kita??

    Reply
  12. nap
    July 2, 2009

    wah jadi mumet saya

    Reply
  13. reein
    July 6, 2009

    makasih atas infonya

    Reply
  14. reein
    July 6, 2009

    thnnnnkkkkkkkkkkkkSQ!Q

    Reply
  15. doganmanis-bisnis online untuk pemula
    October 15, 2009

    thanks nih atas infonya tapi untuk blogspot gimana yah

    Reply
  16. nesken
    February 12, 2010

    binggung ahh

    Reply
  17. rie
    March 26, 2010

    terima kasihh atas informasi nya

    Reply
  18. gagah
    June 10, 2010

    thanks infonya
    menarik sekali
    visit : akhmad06.student.ipb.ac.id

    Reply
  19. Isna Hidaken
    October 27, 2010

    ga ngerti T.T
    terlalu rumit

    Reply
  20. ZN
    November 2, 2010

    makasih infonya……..

    Reply
  21. veris
    January 15, 2011

    terimakasih mas atas informasinya kepada saya. semoga tambah sukses.. amien

    Reply
  22. Sarang Semut
    April 12, 2011

    hehehe bingung aku

    Reply
  23. easy life tips and trick.
    April 26, 2011

    binggung/…

    Reply
  24. joyoplencing
    May 1, 2011

    mtrnwn tutorialnya gan…klo ada ksmptn mampir ya,krn blogku sedkit bnyk dipengaruhi oleh tutorial2 sampeyan..
    http://www.jogjakunyaman.blogspot.com

    Reply
  25. anisa
    May 26, 2011

    bagaimana cara membuat

    blog rss feed(optional)?

    Reply
  26. inf
    July 13, 2011

    maaf. . . saia masi kurang jelas

    Reply
  27. Singh
    August 26, 2011

    Botak kepala gua langsung . . .

    Reply
  28. echo
    October 7, 2011

    msih blum mudeng, mau buat feed apa lgsg ke feedburner ja ya?

    Reply

Leave a Reply

Switch to our mobile site