Pengantar Splash
Saat ini banyak cara untuk akuisisi data, salah satu yang sedang populer dikembangkan adalah web crawling. Namun, permasalahannya terkendala saat menghadapi situs web dinamis yang menggunakan javascript. ‘Browser’ yang digunakan umumnya tidak mendukung javascript.
Splash merupakan salah satu solusi untuk menghadapi situs web dinamis. Splash adalah layanan yang digunakan sebagi rendering javascript. Layanan ini dikembangkan oleh scrapinghub dan mendukung HTTP API untuk interaksi.
Pemasangan Splash
Jika mengacu pada situs dokumentasi splash, terdapat opsi untuk pemasangan Splash dengan Docker. Berikut langkah yang saya lakukan untuk memasang Splash :
Pastikan Docker terpasang dan layanannya aktif.
Selanjutnya, unduh image Splash dengan perintah
docker pull scrapinghub/splash
.Buat dan jalankan kontainer dengan perintah
docker run -d-p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash
Jika dijalankan
docker ps
, akan tampil container baru dengan image splashSplash aktif pada port yang di-expose yaitu 5023, 8050, dan 8051.
Splash HTTP API
Setelah aktif, kita dapat akses Splash Web GUI dengan akses IP_Host:8050
pada browser.
Di laman tersebut ada contoh skrip untuk splash, misal untuk render HTML, PNG, dan HAR. Jika saya masukkan URL pada kotak yang disediakan lalu klik Render me!, maka Splash akan melakukan rendering dan menampilkan laman hasil render.
Selain melalui laman web, eksekusi API dapat dilakukan melalui terminal misal disini saya eksekusi perintah :
curl 'http://ec2-54-191-117-175.us-west-2.compute.amazonaws.com:8050/render.json?url=https://www.tokopedia.com/anekalaser/apple-macbook-pro-with-retina-display-mjlt2ida-office&timeout=10&wait=0.5&html=1&png=1'
Maka akan tampil hasil berupa json pada terminal, untuk melihat hasil sebenarnya, silakan eksekusi pada terminal atau akses url tersebut pada browser (VPS mungkin saja mati sewaktu-waktu).
Sementara itu, Splash juga dapat diintegrasikan dengan Scrapy sebagai fetcher. Sekian pengantar Splash dari saya, kedepannya akan dicoba untuk integrasi ke Scrapy. Selamat mencoba!
Referensi
- Scrapinghub Splash, online : http://scrapinghub.com/splash/
- Splash Documentation, online : http://splash.readthedocs.org/
- Splash Github, online : https://github.com/scrapinghub/splash