- 24 Mar 2022
- 84
- 39
Konu başlığından anlaşılacağı gibi 10fastfingers sitesin de bizim yerimize yazması için bir bot yazacağız iyi okumalar.
Kodun Tamamı
Kodun Açıklaması
Bu kısımda gerekli kütüphaneleri indiriyoruz
Uygulamanın yazıyı yazacağı yere tıklamasını sağlıyoruz eğer koordinatları kolayca bulmak istiyorsanız şu kodu kullanabilirsiniz.
Uygulama temel olarak resmi yazıya çeviriyor. Eğer biz 10fastfingers'ın bize verdiği metinlerin resmini alıp onları düzenli bir şekilde yazıya çevirebilirsek sonrasında
![](https://i.hizliresim.com/jz2l2sb.png)
Bu kısımda oluşturduğumuz
Bu kısımda oluşturduğumuz liste'deki elamanları temizliyoruz.
Sonrasında temizlediğimiz listenin elemanlarını teker teker yazdırıyoruz. Yazdırdıktan sonra
Ve son olarak sırayla önce yazıyı yazacağımız yere
github.com
Kodun Tamamı
Python:
from PIL import ImageGrab
import pyautogui
import pytesseract
from PIL import Image
def click():
pyautogui.click(x=700,y=450)
def screen_shot():
# Define the coordinates of the area you want to capture
x1, y1 = 325, 250
x2, y2 = 1475, 425
# Capture the screenshot of the specified area
screen = ImageGrab.grab(bbox=(x1, y1, x2, y2))
# Save the screenshot to a file
screen.save('screenshot.png')
def img_to_text():
# Load the image
img = Image.open('screenshot.png')
# Convert the image to grayscale
img = img.convert('L')
# Apply OCR and extract text from the image
text = pytesseract.image_to_string(img)
# Print the extracted text
data = text.split(" ")
return data
def write(data):
for word in data:
pyautogui.write(word)
pyautogui.press("space")
def debugger(data):
for index,word in enumerate(data):
if "\n" in word:
data.pop(index)
text = word.replace("\n"," ")
liste = text.split(" ")
if len(liste) == 1:
data.insert(index,liste[0])
else:
for i in range(len(liste)-1,-1,-1):
data.insert(index,liste[i])
return data
if __name__ == '__main__':
click()
while True:
screen_shot()
data = img_to_text()
data = debugger(data)
if len(data) < 15:
break
write(data)
Kodun Açıklaması
Python:
from PIL import ImageGrab
import pyautogui
import pytesseract
from PIL import Image
Bu kısımda gerekli kütüphaneleri indiriyoruz
pyautogui
kütüphanesini terminal ekranına pip install pyautogui
yazarak indirebilirsiniz aynı şekilde pytesseract
kütüphanesinide, PIL
kütüphanesi içinde pip install pillow
yazabilirsiniz.
Python:
def click():
pyautogui.click(x=700,y=450)
Uygulamanın yazıyı yazacağı yere tıklamasını sağlıyoruz eğer koordinatları kolayca bulmak istiyorsanız şu kodu kullanabilirsiniz.
Python:
import pyautogui
from time import sleep
while True:
sleep(1)
print(pyautogui.position())
Python:
def screen_shot():
# Define the coordinates of the area you want to capture
x1, y1 = 325, 250
x2, y2 = 1475, 425
# Capture the screenshot of the specified area
screen = ImageGrab.grab(bbox=(x1, y1, x2, y2))
# Save the screenshot to a file
screen.save('screenshot.png')
Uygulama temel olarak resmi yazıya çeviriyor. Eğer biz 10fastfingers'ın bize verdiği metinlerin resmini alıp onları düzenli bir şekilde yazıya çevirebilirsek sonrasında
pyautogui
kullanarak bunu yazdırabiliriz. screen = ImageGrab.grab(bbox=(x1, y1, x2, y2))
Bu kısımda screenshot alacağı yerin kordinatlarını veriyoruz x1 ve y1 bir köşesinin koordinatları, x2 ve y2 de diğer köşenin koordinatları. Arada kalan alanın screenshot'ını alıyor. Benim screenshot'ım şu şekilde gözüküyor.![](https://i.hizliresim.com/jz2l2sb.png)
screen.save('screenshot.png')
sonrasında aldığımız screenshot'ı kaydediyoruz.
Python:
def img_to_text():
# Load the image
img = Image.open('screenshot.png')
# Convert the image to grayscale
img = img.convert('L')
# Apply OCR and extract text from the image
text = pytesseract.image_to_string(img)
# Print the extracted text
data = text.split(" ")
return data
Bu kısımda oluşturduğumuz
screenshot.png
dosyasını listeye çeviriyoruz.
Python:
def debugger(data):
for index,word in enumerate(data):
if "\n" in word:
data.pop(index)
text = word.replace("\n"," ")
liste = text.split(" ")
if len(liste) == 1:
data.insert(index,liste[0])
else:
for i in range(len(liste)-1,-1,-1):
data.insert(index,liste[i])
return data
Bu kısımda oluşturduğumuz liste'deki elamanları temizliyoruz.
Python:
def write(data):
for word in data:
pyautogui.write(word)
pyautogui.press("space")
Sonrasında temizlediğimiz listenin elemanlarını teker teker yazdırıyoruz. Yazdırdıktan sonra
pyautogui.press("space")
ile space'e bastığımız zaman kabul oluyor.
Python:
if __name__ == '__main__':
click()
while True:
screen_shot()
data = img_to_text()
data = debugger(data)
if len(data) < 15:
break
write(data)
Ve son olarak sırayla önce yazıyı yazacağımız yere
click()
ile tıklıyoruz sonra while True:
döngü içerisine giriyoruz. Önce screen_shot()
ile schreenshot alıyoruz sonra bu resmi data = img_to_text()
liste'ye çeviriyoruz. Oluşan liste'yi data = debugger(data)
ile temizliyoruz write(data)
ile son olarak listeyi yazdırıyoruz. Eğer liste uzunluğu 15 den küçükse sürenin dolduğu anlamına geliyor ve bizde döngüyü bitiriyoruz.GitHub - levidomates/fastfingers-bot
Contribute to levidomates/fastfingers-bot development by creating an account on GitHub.