Playing with curl

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%5B01-12%5D%5B01-31%5D.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 thoughts on “Playing with curl

  1. endhoot says:

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

  2. chiank says:

    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%5B01-12%5D%5B01-31%5D.gif -o ga89#1#2.gif


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

  3. chiank says:

    tambahkan kata _bukan_ didepan buat

  4. arjuna says:

    ya tinggal dilooping pake for atuh
    *injek2 chiank*

  5. dodi says:

    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 says:

    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..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s