Setup Selenium Headless di Heroku


Salah satu app yang saya buat di Heroku bertanggal Desember 2012, artinya sudah 6 tahun yang lalu, dan waktu itu akhirnya memutuskan beralih ke hosting lain karena merasa banyak keterbatasan di Heroku. Tapi sekarang mereka sudah berubah banyak dengan tentunya mendengarkan masukan dari customer mereka yang tidak lain adalah programmer/coder seperti kita-kita ini...

Okay, kembali ke topik, saya sedang butuh selenium headless untuk browser automation dan ngga' nyangka ternyata di Heroku ada buildpack untuk itu. Sebelum ke cara setup, perlu diketahui dulu bahwa buildpack ini "memakan" satu app sendiri, artinya jika Anda menggunakan Heroku free, yang dibatasi maksimal 5 app, jatah Anda sudah berkurang 1, dan selenium ini sendiri butuh 2 buildpack, satu untuk chromedriver, satunya untuk google-chrome executable-nya. Jika ditambah dengan app yang sedang dikerjakan, berarti sudah 3 app sendiri... Tapi gak masalah tetep worth it kok, wong gratis inih...

Lanjut ya ke cara setup, simpel tinggal jalankan perintah berikut, tentunya setelah Anda meng-install Heroku CLI ya...

$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-chromedriver.git
$ heroku buildpacks:add heroku/chromedriver


dan

$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-google-chrome
$ heroku buildpacks:add heroku/google-chrome


Selanjutnya, tinggal sesuaikan path ke chrome driver dan chrome bin di Heroku dashboard, seperti dalam screenshot berikut ini:

Heroku Config Vars - Screenshot
Kemudian tambahkan baris berikut di script, ingat config vars di atas hanya untuk heroku, untuk local environment silakan sesuaikan dengan di mana masing-masing program ini berada. Silakan gunakan tips berikut agar tidak konflik ketika deploy ke Heroku.

GOOGLE_CHROME_BIN = os.environ['GOOGLE_CHROME_BIN']
CHROME_DRIVER = os.environ['CHROME_DRIVER']


Sekarang Anda sudah bisa langsung meng-import library selenium di app Anda:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


Selamat mencoba... cheers!

Reference:


Comments

Popular posts from this blog

Adding Image Alternate Text into WordPress Image Attachment using python-wordpress-xmlrpc Library

Keutamaan Tidur yang Sedikit Menurut para Ulama

Kisah Nabi Uzair a.s.