Bazı tekrarlayan görevler — bir arayüzdeki aynı düğmeye sürekli basmak gibi — elle yapıldığında hem yorucu hem de zaman kaybettiricidir. pyautogui kütüphanesi, fareyi ve klavyeyi programatik olarak kontrol etmenizi sağlar; bu derste ekranda belirlediğiniz sabit bir koordinata otomatik olarak tıklayan basit bir bot yazacağız.
Not: Bu teknik, kendi bilgisayarınızda tekrarlayan ve sizin başlattığınız/durdurduğunuz görevleri otomatikleştirmek içindir. Bir uygulamanın kullanım şartlarını ihlal edecek şekilde (örn. bir oyunda haksız avantaj sağlamak amacıyla) kullanmak, o platformdan hesabınızın kısıtlanmasına yol açabilir — sorumluluk kullanıcıya aittir.
Kurulum
pip install pyautogui keyboard
Fare Koordinatını Okumak
Bir noktaya otomatik tıklatmadan önce, o noktanın ekran koordinatlarını bilmeniz gerekir. pyautogui.position(), farenin o anki konumunu verir:
import pyautogui
import time
def koordinat_al():
x, y = pyautogui.position()
print(f"Tıklanan koordinatlar: {x}, {y}")
return x, y
print("2 saniye içinde fareyi hedef konuma götürün")
time.sleep(2)
x, y = koordinat_al()
Bu küçük yardımcı fonksiyonu bir kez çalıştırıp fareyi istediğiniz noktaya götürerek, o noktanın tam koordinatlarını (x, y) öğrenebilirsiniz.
Sabit Koordinata Otomatik Tıklama
Koordinatları öğrendikten sonra, pyautogui.click(x, y) ile o noktaya istediğiniz kadar tıklatabilirsiniz:
def sinirsiz_tiklama(x_koordinat, y_koordinat, durdurma_tusu):
try:
while True:
pyautogui.click(x_koordinat, y_koordinat)
time.sleep(0.1)
if keyboard.is_pressed(durdurma_tusu):
print("Tıklama işlemi durduruldu")
break
except KeyboardInterrupt:
print("Tıklama işlemi durduruldu")
time.sleep(0.1), her tıklama arasında 0.1 saniyelik bir bekleme koyar — isterseniz bu süreyi ihtiyacınıza göre (1 saniyede bir, 5 saniyede bir gibi) artırabilirsiniz.
Güvenli Bir Durdurma Mekanizması Şart
Sonsuz bir döngü (while True) içinde çalışan bir tıklama botunun, elle durdurulabilecek bir çıkış yolu olmadan çalıştırılması ciddi bir sorundur — bot dışında hiçbir şeye tıklayamaz hale gelebilirsiniz. keyboard.is_pressed(...) ile belirli bir tuşa (örneğin q) basıldığında döngüden çıkmasını sağlıyoruz.
Botu Çalıştırmak
import keyboard
ekran_x = 953
ekran_y = 718
durdurma_tusu = "q"
print(f"5 saniye içinde ilgili sayfaya geçin. Durdurmak için '{durdurma_tusu}' tuşuna basın.")
time.sleep(5)
sinirsiz_tiklama(ekran_x, ekran_y, durdurma_tusu)
Dikkat: time.sleep(5) çağrısı sinirsiz_tiklama fonksiyonunun dışında, döngü başlamadan önce bir kez çalışır — eğer bu bekleme döngünün içine konursa, bot her tıklamadan önce 5 saniye bekler ve pratikte işe yaramaz hale gelir.
Farklı Varyasyonlar
Aynı mantık, sabit koordinat yerine ekranda belirli bir rengi/görseli arayıp bulduğunda tıklama (pyautogui.locateOnScreen(...)) gibi daha gelişmiş senaryolara da genişletilebilir.
Sırada Ne Var?
Sırada, Binance Futures API'siyle vadeli işlem fiyatlarını çekmeyi göreceğiz.