sebelum nya saya membuat tutorial scraping dengan BeautifulSoup, untuk kesempataan kali ini saya akan membuat tutorial scraping dengan selenium.
apa itu Selenium
selenium adalah sebuah multi driver library untuk melakakukan otomatis test pada browser, sebuah aktivitas di browser di lakukan secara otomatis dengan selenium, seperti clik,input,upload, sumbit, drag/drop dan masih banyak lagi.
sebelum kita mulai, kita install module dan software yang di butuhkan.
pip install selenium
- Driver Browser
- Chrome web driver https://sites.google.com/a/chromium.org/chromedriver/downloads
- Firefox web driver https://github.com/mozilla/geckodriver/releases
- Safari web driver https://webkit.org/blog/6900/webdriver-support-in-safari-10/
- Edge web driver https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- PhantomJS https://phantomjs.org/download.html
web driver bisa di download salah satu, karena yang di gunakan hanya 1 web driver, namun jika kalian mendownload semua tidak masalah. karena bisa dirubah untuk konfigurasi web driver nanti nya. Jika kalian sudah download. silahkan buat sebuah folder di C:\Web Driver
dan pindahkan semua file yang di download tadi. hanya file .exe
nya saja yang kalian pindah kan, dan jangan lupa di tambahkan Path Variable Environment nya.
apabila semua sudah terinstall, sekarang kita coba untuk penulisan kode nya. silahkan buat sebuah nama file selenium.py
tulisankan kode seperti ini dan coba jalankan dengan ketik python selenium.py
di window CMD.
|
|
jika kode di atas dijalankan dan tidak terjadi error maka akan muncul window Firefox baru membuka web google dan mengisi input search dengan tulisan sumbercode.com
. pada kesempatan ini saya menulis tutorial cara scraping bukan untuk auto testing, karena pada dasar nya Web driver di gunakan untuk automate testing. karena scraping tidak membutuhkan window browser, jadi nanti kita menggunakan mode headless
. untuk menyembunyikan window browser tersebut.
untuk contoh kali ini saya akan scraping flashsale di bukalapak.com dengan mengunakan selenium untuk mengambil source html nya dan BeautifulSoup untuk memanipulasi nya.
module reuqests tidak bisa menunggu code javascript yang running sampai selesai, namun jika kita menggunakan selenium kita bisa menunggu untuk page tersebuat dapat sepenuh nya terload.
sekarang kita coba jalan kode di bawah ini, dengan ketik python selenium.py
|
|
Penjelasan
di line 8 kita mengunakan mode headless, config dari selenium nya. di line 12 kita membuat statement menuggu element class name ‘jupiter’ hingga tampil, yaitu class container dari page flashdeal bukalapak. di line 19 kita simpan page source menjadi variable dan line 20 kita close browser nya. selanjut nya kita filter dengan beatiufulsoup. dan hasil filter di jadikan list object. buat yang bingung dengan beatiufulsoup, bisa lihat postingan scraping dengan beatiufulsoup untuk mencari nama class.