Sabtu, 09 September 2017

Web Scraping


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




0 komentar:

Posting Komentar

Web Scraping

Apa itu Web Scraping ? Web scraping (panen web) adalah pengambilan sebuah dokumen semi-terstruktur dari in...