Dostlar, kafayı yemek üzereyim. Her sabah, kahvemi alıp masama oturduğumda yaptığım ilk iş aynı: 3 farklı müşteri portalına gir, aynı kullanıcı adı ve şifreyle (evet, hepsi aynı ama yine de tek tek girmem gerekiyor) login ol, sonra her birinden "Daily Report"u indir, indirdiğin 3 Excel dosyasını tek bir CSV'de birleştir ve sonra onu da Slack'e at. Her. Gün. Aynı. Ritüel. Meğerse beynim bana aylardır "Kardeşim, bunu otomatikleştir!" diye bağırıyormuş da ben duymamışım.
Geçen hafta, bir dosyayı yanlışlıkla iki kere Slack'e attım ve patron "Bugün double performans mı gösteriyoruz?" diye espri yapınca, utancımdan yerin dibine girdim. İşte o an, terminali açıp `python3` yazdığım an, her şey değişti. Bu işlem, insanın yapması için aptalca, bir scriptin yapması için ise kusursuzdu.
Temel ihtiyaçlar belliydi: Web'de gezinme, dosya indirme, Excel okuma, biraz veri manipülasyonu. Hemen Selenium ve Pandas kütüphanelerini aklıma yazdım.
Python:
from selenium import webdriver
import pandas as pd
# İçimdeki isyanın ilk satırları...
Scripti yazmaya başladım. İlk aşama loginler... "Ah, basit `find_element` işte" dedim. Meğerse birinin login butonunun ID'si `loginBtn`, diğerinin `submit`, bir diğerinin ise `//button[@type='submit']` olabiliyormuş. Kafayı yiyecektim. StackOverflow'da bile bu kadar saçma bir duruma tam çözüm bulamadım. Her site için küçük, özel fonksiyonlar yazmak zorunda kaldım.
Sonra indirme kısmı... Dosyalar nereye iniyor? Browser ayarlarıyla uğraşmak yerine, direkt linki bulup requests ile indirmeye karar verdim. Daha temiz oldu.
Nihayet script çalıştı! 15 dakikalık sıkıntılı bir manuel işlem, 12 saniyede, hatasız bir şekilde tamamlanıyor. Şu an her sabah scripti çalıştırıp, arka planda bitmesini beklerken kahvemi yudumluyorum. Yaptığım tek şey, oluşan CSV'yi Slack'teki kanala sürükleyip bırakmak. İnanılmaz bir özgürlük hissi.
Şaka gibi ama, bu basit otomasyon bana haftada 1 saatten fazla zaman kazandırdı. O zamanı da yeni scriptler yazarak, yani aslında daha fazla tembellik yapmanın yollarını bularak geçiriyorum.
Peki ya siz? "Her gün yapıyorum" dediğiniz, aslında yapmak ZORUNDA OLMADIĞINIZ hangi aptalca tekrarlı iş var? Onun için bir script yazma fikri kafanızda yandı mı? Yoksa benim gibi utandırıcı bir olay mı sizi harekete geçirdi? Yorumlara yazın, belki beraber çözeriz!