Friday 2 September 2011

Manga Mobile Coding Series : Membajak mangareader.net part 1

Akhirnya sempet nulis lagi. Sekarang saya mau membahas tentang bagaimana cara saya membajak manga yang ada di Mangareader (dan bisa juga digunakan di online manga reader lain seperti Mangafox, AnimeA, atau Batoto). Kalo di kuliah yang saya ikuti di kampus, teknik ini disebut Page Scrapping.


Warning: untuk bisa mengerti dengan sepenuhnya apa yang dibahas di artikel ini, anda perlu mengenal beberapa hal yang tidak dibahas di artikel ini:

  1. DOM (Document Object Model)
  2. Manga :)

Page Scrapping adalah teknik mengambil data dari sebuah website. Banyak sekali data yang bisa kita dapatkan dari sebuah website, mulai dari judul website, informasi yang secara eksplisit ditawarkan di website, informasi pemilik website dan informasi yang implisit diberikan di website. Disini saya menggunakan informasi yang tidak terlalu eksplisit, tapi tidak implisit juga (jadi sedang-sedang saja).

Pertama, mari kita perhatikan halaman daftar manga pada Mangareader. Disana kita akan melihat daftar manga yang sudah urut abjad. Ya, bila kita lihat source code nya (Ctrl + U pada browser anda untuk pengguna Windows dan Linux), kita bisa melihat URL dari manga yang bersangkutan (dan lagi-lagi sudah diurutkan abjad). Sangat menarik!


Manga List pada Mangareader

Source code-nya Manga List pada Mangareader

Tujuan kita adalah mendapatkan URL dari suatu manga tertentu (sebagai contoh 5 Centimeter per Second), lalu membuka URL tersebut, dan mendapatkan URL ke chapter yang dimaksud (sebagai contoh chapter 3). Setelah berhasil membuka halaman chapter yang sekaligus adalah halaman pembaca, kita perlu mendapatkan URL gambar untuk suatu halaman (sebagai contoh halaman ke 20).

Source code-nya suatu manga di Mangareader

Source code-nya suatu chapter alias Manga Viewer di Mangareader

Lalu bagaimana kita bisa mendapatkan URL-URL tersebut sedangkan di halaman tersebut terdapat banyak sekali informasi lain (seperti iklan, ads, dan iklan)? Pertama kita harus mengetahui pola dari halaman yang kita unduh. Akan saya contohkan bagaimana saya mendapatkan URL manga-manga dari manga list.

Perhatikan bahwa kita membutuhkan nilai href dari suatu link (a). Elemen a selalu didahului dengan sebuah unordered list ul yang memiliki class = series_alpha. Sehingga kita bisa membuat logika umum seperti berikut:

"Dari halaman yang berhasil diunduh, carilah semua elemen ul. Dari semua elemen ul yang ada, pilihlah elemen yang memiliki class=series_alpha. Untuk tiap elemen yang sudah tersaring tersebut, ambillah anak pertamanya, yaitu sebuah elemen a. Setelah mendapat elemen a, dapatkan nilai href-nya"

Hal yang perlu diwaspadai adalah apabila si pemilik halaman web (dalam kasus ini Mangareader) cukup "canggih". "Canggih" disini adalah apabila mereka mengganti pola penempatan URL mereka secara berkala. Contoh website manga yang cukup "canggih" untuk melakukan itu adalah Mangastream.

Pada artikel berikutnya, saya akan membahas bagaimana melakukan hal ini di Android.

Seperti biasanya, kritik dan saran sangat diterima.

1 comment: