feat: add image saving

This commit is contained in:
2025-04-15 13:48:13 +03:00
parent 3c568ac93a
commit 2b529b1448
2 changed files with 21 additions and 10 deletions

4
.gitignore vendored
View File

@@ -1,2 +1,4 @@
.venv
__pycache__
__pycache__
*.png
images

27
main.py
View File

@@ -1,45 +1,54 @@
import math
import random
from io import BytesIO
from time import sleep
from selenium import webdriver
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)
# 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(5)
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.pause(0.2)
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.pause(0.2)
action.perform()
# Режим спутника
action.click(driver.find_element(By.CLASS_NAME, '_key_satellite'))
action.pause(0.2)
action.perform()
randomPilot = RandomPilot(100)
while True:
for i in range(100):
# Сдвиг камеры
action = ActionChains(driver)
action.move_to_element_with_offset(html, 200, 200)
action.click_and_hold()
action.move_by_offset(*randomPilot.step())
dx, dy = randomPilot.step()
action.move_by_offset(-dx, dy)
action.release()
action.perform()
sleep(0.5)
# Загрузка скриншота
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)