Сделать бота для сбора датасета (нужно где-то 5000 фото) Бот бегает по сайтам нажимает на любую кнопку и делает скрины изменений интерфейсов и формирует датасет с репозиториями: dataset -images before -images after изображения имеют одинаковые названия, чтобы коннектить изображения из папки до нажатия кнопки и после.
Создание бота для сбора датасета из 5000 изображений, который будет делать скриншоты интерфейсов до и после нажатия кнопок на веб-страницах, требует использования инструментов для автоматизации браузера и обработки изображений. Один из популярных инструментов для этого — Selenium. Вот пример, как можно реализовать такой бот на Python:
pip install selenium pillow
import os
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from PIL import Image
# Настройки для Chrome
chrome_options = Options()
chrome_options.add_argument("--headless") # Запуск в фоновом режиме
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--window-size=1920,1080")
# Путь к драйверу Chrome
chrome_driver_path = 'path/to/chromedriver'
# Создание папок для хранения изображений
os.makedirs('dataset/images_before', exist_ok=True)
os.makedirs('dataset/images_after', exist_ok=True)
# Функция для сохранения скриншота
def save_screenshot(driver, path):
driver.save_screenshot(path)
# Обрезка скриншота до размера окна браузера
image = Image.open(path)
image = image.crop((0, 0, driver.execute_script('return window.innerWidth'), driver.execute_script('return window.innerHeight')))
image.save(path)
# Инициализация драйвера
service = Service(chrome_driver_path)
driver = webdriver.Chrome(service=service, options=chrome_options)
# Список URL для посещения
urls = [
'https://example.com',
# Добавьте сюда другие URL
]
# Основной цикл по URL
for idx, url in enumerate(urls):
try:
driver.get(url)
time.sleep(2) # Ожидание загрузки страницы
# Сохранение скриншота до нажатия кнопки
before_path = f'dataset/images_before/{idx}.png'
save_screenshot(driver, before_path)
# Поиск и нажатие на первую кнопку на странице
buttons = driver.find_elements(By.TAG_NAME, 'button')
if buttons:
ActionChains(driver).move_to_element(buttons[0]).click().perform()
time.sleep(2) # Ожидание изменений на странице
# Сохранение скриншота после нажатия кнопки
after_path = f'dataset/images_after/{idx}.png'
save_screenshot(driver, after_path)
else:
print(f'No buttons found on {url}')
except Exception as e:
print(f'Error processing {url}: {e}')
# Закрытие драйвера
driver.quit()
selenium
для автоматизации браузера и pillow
для обработки изображений.save_screenshot
сохраняет скриншот и обрезает его до размера окна браузера.urls
для достижения необходимого количества изображений.Этот скрипт является базовым примером и может потребовать доработки в зависимости от специфики сайтов, которые вы планируете обрабатывать.