Apa itu Web Scraping ?
Web scraping (panen web) adalah
pengambilan sebuah dokumen semi-terstruktur dari internet, umumnya berupa
halaman-halaman web dalam bahasa markup seperti HTML atau XHTML, dan
menganalisis dokumen tersebut untuk diambil data tertentu dari halaman tersebut.
Istilah gampangnya yaitu pengambilan konten dari situs satu ke situs lain.
Contoh sederhananya jika kita meng-click kanan , kemudian
view page source, pada sebuah halaman website, akan muncul kode-kode (tag HTML,
javascript, dll) dan bagian itu lah yang akan kita tarik datanya, untuk
melakukannya kita menggunakan teknik Parsing/Parse HTML (Parse html adalah
suatu teknik untuk memisahkan suatu teks dari tag2 code-code html pada halaman
website). Ilustrasi sederhananya seperti berikut :
Website
yang besar biasanya memiliki banyak data untuk dikelola, oleh karena itu
penting bagi para Scraper untuk mampu mengelola data-data pada website
tersebut.
Tips
Bagi teman-teman yang ingin melakukan Web Scraping :
1. Halaman Cache dikunjungi untuk Scraping
Ketika
membongkar website besar, selalu ada ide yang baik untuk menyimpan data di
tempat khusus (cache) yang sudah diunduh. Jadi kita tidak harus
meletakkan beban pada website, jika kita mau memulai dari awal lagi atau
halaman yang diperlukan selama pembongkaran itu sangat mudah ke cache.
Tinggal cek kotak kata kunci seperti redis. Selain itu Database dan cache file
systemnya juga harus baik.
2. Jangan membanjiri website dengan jumlah permintaan paralel yang
besar, karena akan membuat kinerja menjadi lambat.
Website memiliki
algoritma untuk mendeteksi webscraping. Banyak permintaan
paralel dari alamat IP yang sama, akan mengidentifikasi kita sebagai penolakan
pelayanan pada website mereka, dan mem-blacklist IP. Sebuah ide
yang lebih baik adalah ketika permintaan kita benar satu demi satu, memberikan
beberapa jenis yang mirip dengan perilaku manusia. Tapi gesekan seperti itu
akan memakan banyak waktu. Untuk menyeimbangkan permintaan kita harus
menggunakan waktu respon rata-rata situs, dan bermain-main dengan jumlah
permintaan paralel ke website untuk mendapatkan IP yang benar, sehingga membuat
kinerja menjadi stabil.
3. Menyimpan URL kita yang sudah diambil
Kita mungkin
ingin menyimpan daftar URL yang telah diambil dalam database. Apa yang akan
kita lakukan jika mengalami scraper crash setelah menscraping
70% dari website? Maka kita perlu menyelesaikan 30% sisanya, dengan daftar dari
URL, yang akan memakan waktu dan bandwidth. Pastikan agar kita tidak membuang
waktu dan badwidth untuk menyimpan daftar URL tesebut ke dalam
suatu tempat permanen, sampai kita memiliki semua data yang dibutuhkan. Juga
dapat dikombinasikan dengan cache. Dengan cara ini, kita akan dapat
melanjutkan scraping.
4. Melakukan Split scraping
Menjadi hal yang
mudah dan lebih aman jika kita membagi scraping menjadi beberapa fase yang
lebih kecil. Misalnya, kita bisa membagi scrape website besar menjadi dua
layer. Satu untuk mengumpulkan link ke halaman yang kita butuhkan untuk
mengambil data dan satu lagi untuk mengunduh halaman untuk menscrape konten.
5. Ambil yang diperlukan
Jangan ambil
atau mengikuti setiap link kecuali diperlukan saja. Banyak hal yang selalu
menggoda dalam mengambil segala sesuatu, ketika kita melakukan scaraping. Jika
hal itu dilakukan maka kita hanya membuang-buang bandwidth, waktu dan
penyimpanan.
Nah, Buat kamu yang mau mencoba
melakukan teknik Scraping, baca juga Tutorial Web Scraping
Semoga Bermanfaat J
**Artikel ini berdasarkan dari
beberapa Referensi