Python! Фриланс! Как сделать простого бота! Подробный урок!
autopilot_fpv
0:00 / 0:00
Python! Фриланс! Как сделать простого бота! Подробный урок!
4 717 просмотров · 4 года назад
autopilot_fpv
13 тыс. подписчиков
4 717 просмотров · 4 года назад
Как сделать простого бота на питоне.
Бот ищет изображение на экране и кликает рядом с ним на заданном расстоянии.
Здесь обсуждаются следующие вопросы:
Поиск изображения на экране
Многопоточность
Остановка потоков
Чтение текстовых файлов
Ожидание нажатия клавиши
Исключения
Если у Вас есть советы и пожелания по алгоритму, пишите.
Если Вам интересна эта тема, поддерживайте, ставьте лайки и тогда будет продолжение про новых ботов.
КОД БОТА:
#pip install Pillow, pip install keyboard, pip install pyautogui, pip install opencv-python, pip install pyinstaller
import sys
import pyautogui
import keyboard
import time
import threading
from threading import Thread
#Эту функцию будем запускать в отдельном потоке. Она непрерывно следит за клавиатурой.
И передаёт сигнал СТОП, если нажали на определённую клавишу
def EXIT():
global stop
global keyStop
while True:
if keyboard.is_pressed(keyStop):
stop = True
break
В случае исключения в основном потоке, выходим и отправляем СТОП, чтобы закрылся этот поток.
if stop == True:
break
pyautogui.sleep(0.05)
#считываем четыре строчки из текстового файла
try:
with open("settings.txt", "r") as file:
pause = int(file.readline())
confidence = float(file.readline())
clickRight = int(file.readline())
keyStop = file.readline()
except:
pyautogui.alert('Ошибка чтения файла settings.txt', 'ВНИМАНИЕ')
stop = True
sys.exit()
#Переменная для остановки программы.
#Если она равна True, то программа должна завершить свою работу
stop = False
#Запускаем отдельный поток, в котором запускается функция EXIT()
th = Thread(target=EXIT)
th.start()
#Бесконечный поиск изображения, пока не получен сигнал СТОП
while stop == False:
try:
button = pyautogui.locateCenterOnScreen('image.png', confidence = confidence/100)
except:
pyautogui.alert("Не могу открыть image.png", "ВНИМАНИЕ")
stop = True
sys.exit()
if (button):
pyautogui.click(button.x+clickRight, button.y)
pyautogui.sleep(pause)
pyinstaller -F -w -i "bot.ico" main.py