Rabu, 25 Agustus 2010

Fundamental of Web Crawler


Meskipun telah beragam aplikasi web crawler, namun pada intinya semuanya memiliki kesamaan secara fundamental. Berikut proses alur kerja dari sebuah web crawler:
1. Download halaman web (webpage)
2. Parse (menguraikan) page yg didownload dan mendapatkan semua link
3. Bagi setiap link yg didapatkan, ulangi proses dari awal

Sekarang, mari kita amati seiap langkag dgn lebih mendalam.

Step pertama, sebuah web crawler mengambil URL dan mengunduh webpage dari internet berdasarkan URL yg telah diberikan. Seringkali, page yg didownload disimpan ke dalam disk atau database. Dengan menyimpan webpage, memungkinkan software lain ato WC utk kembali dan melakukan manipulasi webpage, sebut saja utk indexation atau archiving sebuah situs.

Step kedua, menuraikan page dan mengambil semua link yg ada. Setiap link yg didapat didefinisikan sebagai HTML anchor tag, mirip seperti yg berikut:

<A HREF="http://www.slametology.com/directory/uinmalikimalang.html">Link</A>

Setelah semua link selesai didapatkan, setiap link ditambahkan ke daftar link utk kemudian di crawling.

Step ketiga, ulangi proses dari awal. Semua web crawler bekerja secara rekursif atau looping, namun ada dua jalan berbeda dalam pelaksanaannya. Link dapat dicrawlin secara depth-first atau breadth-first manner.

Depth-first crawling mengikuti semua path yg bisa dicrawling sebelum path lainx dicoba. Cara kerjanya dgn menemukan link pertama sebuah webpage, kemudian meng-crawl page yg berasosiasi dg page tersebut, menemukan kembali link pertama, dst.. sampai ujung path diraih. Proses berlanjut sampai semua cabang dari semua link habis...bis....

Breadth-first crawling, mengecek semua link pada webpage baru pindah ke page yang berikutnya. Jadi, prosesnya dgn meng-crawling semua link di page pertama, lalu meng-crawl semua link pada page pertama pada link pertama tadi, dst. Search crawler di sini memakai breadth-first.

Robot Protocol (robots.txt)


Biasanya, beberapa page didownload pada satu waktu dari website, bukan ratusan atau ribuan. Website juga memilki area terlarang yg crawler tdk boleh mengcrawl. Utk menunjukkan ketentuan ini, banyak website memakai Robot protocol, yg menjadi guideline (pemandu) yg harus diikuti oleh crawler. Shingga, robot protocol menjadi aturan tdk tertulis dalam dunia internet bagi web crawler.

Robot protocol membuat sebuah file bernama robots.txt yg diletakkan di root website. Crawler yg sopan (beretika) akan mengikuti kaidah robot protocol dan men-skip page yg dilarang.

Berikut contoh robot.txt dan penjelasannya:

# robots.txt for http://www.slametology.com/
User-agent: *
Disallow: /cgi-bin/
Disallow: /registration # Disallow robots on registration page
Disallow: /login

Penjelasan:

Awalan "# " dipakai utk menulis comment (komentar).
User-agent dipakai untuk program yang mengakses website. Maksudnya, website tersebut melarang semua jenis web crawler atau user-agent (*) utk mengakses area terlarang. Perlu diingat bahwa. pemakain asterik tidak berpengaruh pada browser karena browser tidak membaca robots.txt yg artinya tidak menyebabkan ketidaklengkapan pembacaan browser.

Disallow statement menunjukkan path terlarang pada suatu website. Sebagai contoh, disallow pertama pada contoh di atas akan melarang utk mengakses:
http://www.slametology.com/cgi-bin/
http://www.slametology.com/cgi-bin/secret

Kedua URL di atas termasuk restriction area. Disallow statement berlaku utk path tertentu, bukan utk sebuah file.


Share

Tidak ada komentar:

Posting Komentar