Selenium Block Element


  1. Pendahuluan
  2. Kelebihan membuat bot dengan cara ini kalian tidak harus mengerti bahasa pemrograman python. Selamat mencoba semoga bermanfaat.

    Silahkan Install semua tools yang diperlukan dibawh ini:
    # https://www.sublimetext.com/
    # https://www.python.org/
    # https://selenium-python.readthedocs.io/
    # https://www.google.com/intl/id_id/chrome/
    # https://sites.google.com/a/chromium.org/chromedriver/downloads
    
  3. BLOCK MODUL
  4. fc: berfungsi untuk memasang modul selenium
    from selenium import webdriver
    
  5. BLOCK DRIVER CHROME
  6. fc: berfungsi untuk memanggil file driver
    driver = webdriver.Chrome(executable_path='chromedriver.exe')
    
  7. BLOCK READFILE
  8. fc: berfungsi untuk membaca isi file txt
    read = open('file.txt', 'rb')
    lists = read.readlines()
    
  9. BLOCK READFILECSV
  10. fc: berfungsi untuk membaca isi file csv
    csv = open('file.csv', 'rb')
    lists = csv.reader(csv)
    
  11. BLOCK WRITEFILECSV
  12. fc: berfungsi untuk membuat dan menulis file csv
    csv = open('file.csv', 'wb')
    write = csv.writer(csv)
    write.writerow([var, var, etc])
    
  13. BLOCK GET URL
  14. fc: berfungsi untuk get url
    driver.get(url)
    
  15. BLOCK TIMESLEEP
  16. fc: berfungsi untuk membuat jeda waktu
    from time import sleep # modul
    sleep(10)
    
  17. BLOCK RAWINPUT
  18. fc: berfungsai untuk membuat inputan atau digunakan untuk pause
    raw_input(str) # contoh penggunaan pause
    var = raw_input(str) # contoh penggunaan inputan
    
  19. BLOCK LOOPFOR
  20. fc: berfungsi untuk membuat perulangan for
    for var in list: # contoh penggunaan list
        print var
    
    for var in range(int): # contoh penggunaan range
        print var
    
  21. BLOCK LOOPFORSINGLELINE
  22. fc: berfungsi untuk membuat perulangan for singleline
    list = [var for var in list]
    
  23. BLOCK LOOPWHILE
  24. fc: berfungsi untuk membuat perulangan terus_menerus
    while True:
        print 'hello!'
    
  25. BLOCK DOWNLOADERFROMPATH
  26. fc: berfungsi untuk download file
    import urllib # modul
    urllib.urlretrieve('https://example.com/file.jpg', 'namefile.jpg')
    
  27. BLOCK EXTRACTFILENAMEFROMPATH
  28. fc: berfungsi untuk mengambil nama file dari path/url
    import os # modul
    os.path.basename('https://example.com/namefile.jpg')
    
  29. BLOCK ENCODED
  30. fc: berfungsi untuk menghapus karakter khusus | untuk menangani masalah print,string
       
    str.encode('utf-8')
    
  31. BLOCK GETEXTENTION
  32. fc: berfungsi untuk extract extention file | hanya untuk mengambil nama extensinya saja
    filename, ext_file = os.path.splitext('../tes/sapi.jpg')
    
  33. BLOCK FINDELEMENTBYXPATH SELENIUM
  34. Kerangka kerja otomatisasi web yang memungkinkan Anda untuk melakukan pengujian terhadap browser

    Cara penulisan:
    driver.find_element_by_xpath(xpath) # contoh penggunaan selenium xpath
    driver.find_elements_by_xpath(xpath) # atau seperti ini
    
    Hanya perlu copy dan paste sesuai yang diperlukan.
    driver.find_element_by_xpath('//..[@..=".."]').click() # berfungsi untuk klik objek elemen
    
    driver.find_element_by_xpath("//..[text()='..']").click() # berfungsi untuk klik objek text
    
    driver.find_element_by_xpath('//..[@..=".."]').text # berfungsi untuk penampilkan text
    
    driver.find_element_by_xpath("//..[@..='..']/option[text()='...']").click() # berfungsi untuk memilih opsi dropdown
    
    url = [a.find_element_by_xpath('.//img').get_attribute('src') \
    for a in driver.find_elements_by_xpath('//..[@..=".."]')] # berfungsi untuk extract link gambar dan ditampilkan dalam list (src single line) 
    
    for a in driver.find_elements_by_xpath('//..[@..=".."]'): # berfungsi untuk extract link gambar menggunakan for (src)
        imgdownload = a.find_element_by_xpath('.//img').get_attribute('src')
    
    url = [re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', n.get_attribute('style'))[0] for n in driver.find_elements_by_xpath("//..[@..='..']")] # berfungsi untuk extract link gambar dan ditampilkan dalam list (not src single line)
    
    import re # modul
    for n in driver.find_elements_by_xpath("//..[@..='..']"): # berfungsi untuk extract link gambar menggunakan for (not src)
        imgdownload = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', n.get_attribute('..'))[0]
    
    import os # modul
    driver.find_element_by_xpath("//..[@..='']").send_keys(os.path.abspath(str)) # berfungsi untuk input field, gambar atau text
    
    driver.quit() # berfungsi untuk menutup atau menghentikan driver
    
  35. PERSIAPAN
  36. - install dan penggunaan dasar selenium
    - membaca element web pada browser
    - membuat alur dasar perancangan bot
    - menerapkan modul csv untuk read, write, dan Membuat perulangan
    - Melakukan testing

  37. PRAKTEK
  38. - Praktek membuat BOT SCRAPE
    - Praktek membuat BOT UPLOAD
    - Download SOURCECODE

Materi ini tergantung dengan bahasa pemrograman Python dan Teknik Regex. Dalam materi ini saya tidak membahas keduannya lebih mendalam silahkan belajar dari sumber terpisah atau yang lain. Akan tetapi blok kode-kode siap pakai diatas sudah cukup digunakan untuk membuat bot yang power full. Mulai dari Auto srape data, Auto input data, Auto download, dan lain-lain. Bisa juga digabungkan dengan fungsi-fungsi python lainnya agar lebih magic.

Kelebihan tutorial dari Block Element ini tidak diharuskan menguasai bahasa pemrograman terlebih dahulu, hanya saja harus memahami cara penerapanya. Panduan by step membuat bot hanyalah dengan cara Copy Paste blok kode-kode yang sudah tersedia diatas. Block Element juga sudah menyediakan materi Dasar Pemrograman Python untuk membantu kalian khususnya bagi yang ingin mendalaminya lebih jauh.

Block Element sangat cocok digunakan bagi siapa saja yang ingin pekerjaannya lebih mudah, atau siapapun kalian yang ingin mendalami otomatisasi tanpa harus keluar biaya untuk membeli bot.

2 komentar:

  1. mantab materinya
    boleh mintah cintih scriptnya yg sudah jadi.
    biar kita bisa rubah dikit2. heheheh... terimakasih

    BalasHapus