Skip to content

Instantly share code, notes, and snippets.

@lantip
Last active May 17, 2019 10:41
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save lantip/97e0381cdf03ed71ad5793aadc4268b6 to your computer and use it in GitHub Desktop.
Save lantip/97e0381cdf03ed71ad5793aadc4268b6 to your computer and use it in GitHub Desktop.
Script untuk menyimpan tangkap-layar dari laman KPU, dengan terlebih dulu memilih TPS
# Sebagai kelanjutan dari script saya sebelumnya (save_screenshot.py)
# Script ini membuka laman kpu, memilih berurutan Propinsi, Kabupaten, Kecamatan, Kelurahan dan TPS
# Di penghujung proses, dilakukan penyimpanan screenshot.
# Sebagai POC, saya batasi saja 5 TPS
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import datetime
import time
browser = webdriver.Chrome()
browser.get('https://pemilu2019.kpu.go.id/#/ppwp/hitung-suara/')
wait = WebDriverWait(browser, 10)
for i in range(5):
states = browser.find_elements_by_class_name('form-group')[-1]
# jika koneksi kurang bagus, kadang element belum siap diklik, jadi perlu beri jeda
try:
states.click()
except:
time.sleep(5) # jeda lima detik. bisa diubah.
states = browser.find_elements_by_class_name('form-group')[-1]
states.click()
substate = wait.until(EC.presence_of_element_located((By.TAG_NAME, 'li')))
substate.click()
time.sleep(5) #kembali memberi jeda agar render selesai. lebih baik kalau pakai browser wait.
pindai = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'my-2')))
buttons = browser.find_elements_by_class_name('btn-dark')
for btn in buttons:
if btn.text.strip() == 'Lihat Form Pindai C1':
btn.click()
#scroll ke posisi terbawah
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(5) #jeda hanya kalau koneksi kurang bagus
title = browser.find_element_by_class_name('page-subtitle').text
browser.save_screenshot(title+'-'+datetime.now().strftime('%Y-%m-%d %H:%i:%s')+'.png')
browser.quit()
@lynggo
Copy link

lynggo commented May 16, 2019

robot iklas ini ya gan

@lantip
Copy link
Author

lantip commented May 17, 2019

saya ikhlas bikin robot mas :)

@martonowibowo
Copy link

wii mantul mas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment