Files
autopilot/main.py
2025-04-15 13:48:13 +03:00

55 lines
1.6 KiB
Python

import math
import random
from io import BytesIO
from time import sleep
import selenium
from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from random_pilot import RandomPilot
options = webdriver.ChromeOptions()
# options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options)
driver.get("https://yandex.ru/maps/43/kazan/?ll=49.103814%2C55.794258&z=14")
sleep(2)
html = driver.find_element(By.TAG_NAME, 'html')
canvas = driver.find_element(By.TAG_NAME, 'canvas')
action = ActionChains(driver)
# Закрытие левой панели
action.click(driver.find_element(By.CLASS_NAME, 'sidebar-toggle-button'))
action.move_to_element_with_offset(driver.find_element(By.XPATH, "//div[@class='rounded-controls']/div[@class='rounded-controls__child'][5]//button"), 5, 5)
action.perform()
# Режим спутника
action.click(driver.find_element(By.CLASS_NAME, '_key_satellite'))
action.perform()
randomPilot = RandomPilot(100)
for i in range(100):
# Сдвиг камеры
action = ActionChains(driver)
action.move_to_element_with_offset(html, 200, 200)
action.click_and_hold()
dx, dy = randomPilot.step()
action.move_by_offset(-dx, dy)
action.release()
action.perform()
# Загрузка скриншота
png = driver.get_screenshot_as_png()
im = Image.open(BytesIO(png))
im = im.crop([0, 80, im.width-80, im.height-60])
im.save(f"./images/{i}.png")
sleep(0.25)
print("last position: ", driver.current_url)