Playing with curl

August 9, 2006 at 11:19 am (linucks sux)

Pernah mo download banyak file dengan url yang berbeda-beda? Pernah mau download file dengan nama file seperti file001.mpg sampai file999.mpg? Kejadian seperti ini gue alami waktu mau download comic strip macam Garfield atau Calvin and Hobbes.

Website resmi Garfield atau Calvin and Hobbes memang menyediakan archive comic strip yang hanya bisa dilihat satu persatu untuk setiap comic stripnya. Sementara koneksi internet yang tidak Deden friendly adalah salah satu faktor penghambat untuk bisa menikmati comic strip sambil meminum secangkir nescafe pas (sumpah ini spam).

Dari website Garfield, gue menemukan bahwa comic strip yang muncul di sana disimpan di site images.ucomics.com. Misalkan untuk comic strip tanggal 15 Januari 2006, urlnya adalah http://images.ucomics.com/comics/ga/2006/ga060115.gif

Berarti kira-kira kalo gue mau liat archive 9 Juni 1997, mungkin urlnya adalah http://images.ucomics.com/comics/ga/1997/ga970609.gif. Apakah benar? Coba aja di cek.

Dulu sekitaran tahun 2004, gue pernah diskusi sama Aris gimana cara yang baik untuk mendownload comic strip ini. Dasar programmer, dia langsung buat sebuah script php yang berfungsi menghasilkan sebuah file dengan url-url comic strip yang ingin di download. Misalkan elo mau download seluruh comic strip yang ada dari taun 1996 sampai taun 1997, tinggal input range tahun, dan tercipta sebuah file dengan url-url yang tinggal digabungkan ke dalam perintah wget.

Baru beberapa bulan kemudian, gue menemukan cara yang lebih efisien untuk mendownload comic strip atau file-file apapun dengan url berbeda tapi ada polanya. Perintah yang gue pake adalah curl.

Dengan perintah curl, gue bisa mendownload range comic strip untuk setiap tahunnya, hanya dengan perintah seperti
curl http://images.ucomics.com/comics/ga/1989/ga89[01-12][01-31].gif -o ga89#1#2.gif

Setiap tanda [] berarti range angka yang akan digenerate dalam url tersebut. Artinya gue akan mendownload file dengan nama berawalan ga89 (garfield tahun 1989), bulan 1-12, tanggal 1-31.

Sementara output dari perintah tersebut akan disimpan ke file dengan nama ga89#1#2.gif. Yang mana tanda #1 itu adalah variable yang akan diisi dengan range angka pertama yang dipakai di url tersebut, #2 variable untuk range angka kedua, dan seterusnya.

Tapi dengan perintah curl seperti ini memang ada sedikit ‘kelebihan’. Kelebihan download tepatnya. Ada beberapa file yang tidak ada, tapi akan terdownload. Misalkan file dengan nama ga890230.gif atau ga890231.gif atau yang lainnya. Ya maklum lah, tanggal 30, 31 bulan februari kan nggak ada. Ataupun tanggal-tanggal 31 lain di bulan yang hanya berjumlah 30 hari.

Nah kalo udah selesai, tinggal gue ditodong Bunda buat ngaplod hasil codotan.

Garfield

6 Comments

  1. endhoot said,

    ya saya?
    hihiihihihiih…
    calvin and hobbes-nya juga mau dong….
    *wink2*

  2. chiank said,

    Dengan perintah curl, gue bisa mendownload range comic strip untuk setiap tahunnya, hanya dengan perintah seperti
    curl http://images.ucomics.com/comics/ga/1989/ga8901-1201-31.gif -o ga89#1#2.gif


    coba yah..itu hanya untuk mendonlot comic strip tahun 1989 doank..buat setiap tahunnya

  3. chiank said,

    tambahkan kata _bukan_ didepan buat

  4. arjuna said,

    ya tinggal dilooping pake for atuh
    *injek2 chiank*

  5. dodi said,

    hahahah! Tub! blog yang di sini emang lebih fokus. udah tinggalin aja tuh arjuna.or.id. jual ke Dewa Rp 1 Miliar, kali mau. qhihiqqhi

  6. golda said,

    jadi inget 2 tahun lalu, minta nugi donlotin lagu dari peppermint club, emang dasar dia programmer, jadi langsung di donlot semua pake program. dengan modal cd hasil donlotan, dia ngajak ktemuan ma gw :p swit swiww..

Post a Comment