Я делаю робота который бы за меня кликал в одну точку, но если вылезает капча, то он бы её решал. Вот ссылка на сообщество в котором я пытаюсь это сделать:
https://vk.com/radiationbot. Капча у них это шесть смайликов к разном порядке и нужно нажать на алмазик, я решил проверять ту точку в которую я кликаю, на, то зелёная ли она. Если нет, то он получает цвета из шести позиций и если это цвет алмазика, то кликает на него, затем нажимает на кнопку в сообщении выше и продолжает работать в штатном режиме. Пиксели по которым я определял цвета идут в разрешении 1920x1080. Но бот мискликает почти всегда и не определяет наличие капчи. Вот мой код, может кто-то посоветует как это решить:
import pyautogui
from PIL import Image
import time
# Координаты пикселя, который нужно проверить
# Задержка в одну секунду
delay = 1
def captcha_solution():
print('Statesment: ERROR(captcha)')
first_cap_pixel_color = screenshot.getpixel((680, 658))
second_cap_pixel_color = screenshot.getpixel((731, 658))
third_cap_pixel_color = screenshot.getpixel((781, 658))
four_cap_pixel_color = screenshot.getpixel((680, 695))
five_cap_pixel_color = screenshot.getpixel((731, 695))
six_cap_pixel_color = screenshot.getpixel((781, 695))
if first_cap_pixel_color == (128, 227, 255) or first_cap_pixel_color == (117, 204, 228):
print("Outgoing signal: Solution founded, working busy...")
pyautogui.moveTo(680, 658, duration=delay)
pyautogui.click(680, 658)
pyautogui.moveTo(690, 480, duration=delay)
pyautogui.click(690, 480)
print("Outgoing signal: Captcha Soluted, working...")
elif second_cap_pixel_color == (128, 227, 255) or second_cap_pixel_color == (117, 204, 228):
print("Outgoing signal: Solution founded, working busy...")
pyautogui.moveTo(731, 658, duration=delay)
pyautogui.click(731, 658)
pyautogui.moveTo(690, 480, duration=delay)
pyautogui.click(690, 480)
elif third_cap_pixel_color == (128, 227, 255) or third_cap_pixel_color == (117, 204, 228):
print("Outgoing signal: Solution founded, working busy...")
pyautogui.moveTo(781, 658, duration=delay)
pyautogui.click(781, 658)
pyautogui.moveTo(690, 480, duration=delay)
pyautogui.click(690, 480)
print("Outgoing signal: Captcha Soluted, working...")
elif four_cap_pixel_color == (128, 227, 255) or four_cap_pixel_color == (117, 204, 228):
print("Outgoing signal: Solution founded, working busy...")
pyautogui.moveTo(680, 695, duration=delay)
pyautogui.click(680, 695)
pyautogui.moveTo(690, 480, duration=delay)
pyautogui.click(690, 480)
print("Outgoing signal: Captcha Soluted, working...")
elif five_cap_pixel_color == (128, 227, 255) or five_cap_pixel_color == (117, 204, 228):
print("Outgoing signal: Solution founded, working busy...")
pyautogui.moveTo(731, 695, duration=delay)
pyautogui.click(731, 695)
pyautogui.moveTo(690, 480, duration=delay)
pyautogui.click(690, 480)
print("Outgoing signal: Captcha Soluted, working...")
elif six_cap_pixel_color == (128, 227, 255) or six_cap_pixel_color == (117, 204, 228):
print("Outgoing signal: Solution founded, working busy...")
pyautogui.moveTo(781, 695, duration=delay)
pyautogui.click(781, 695)
pyautogui.moveTo(690, 480, duration=delay)
pyautogui.click(690, 480)
print("Outgoing signal: Captcha Soluted, working...")
while True:
# Получаем скриншот экрана
screenshot = pyautogui.screenshot()
# Получаем цвет пикселя на координатах (x, y)
farm_pixel_color = screenshot.getpixel((692, 697))
# Если пиксель зеленый, нажимаем на него
if farm_pixel_color == (75, 179, 75) or farm_pixel_color == (70, 162, 70):
pyautogui.moveTo(692, 697, duration=delay)
if farm_pixel_color == (75, 179, 75) or farm_pixel_color == (70, 162, 70):
pyautogui.click(692, 697)
print("Statesment: OK")
else:
captcha_solution()
else:
captcha_solution()