<b>? ТЕХНИЧЕСКОЕ ЗАДАНИЕ</b><p></p><p></p><p></p><h2><b>? Название проекта:</b></h2><p></p><p></p><p><b>Web Scanner для поиска дубликатов изображений в Google и Yandex</b></p><p></p><hr /><p></p><p></p><h2><b>? Цель проекта:</b></h2><p></p><p></p><p>Разработать инструмент, который позволяет:</p><p></p><ul><li><p>Загружать фотографию (или несколько).</p></li><li><p>Выполнять поиск по изображению в <b>Google Images</b> и <b>Яндекс Картинках</b>.</p></li><li><p>Автоматически собирать <b>URL-адреса</b> сайтов, где найдены совпадения.</p></li><li><p>Выводить отчёт в виде таблицы (с возможностью экспорта в Excel / CSV).</p></li><li><p>Использовать как <b>скрипт</b> и/или через <b>веб-интерфейс</b>.</p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>? Обязательные функции:</b></h2><p></p><p></p><p></p><h3><b>1.</b></h3><h3><b>Загрузка изображения</b></h3><p></p><p></p><ul><li><p>Через веб-интерфейс (HTML-форма или drag-and-drop).</p></li><li><p>Дополнительно: загрузка папки с несколькими изображениями.</p></li></ul><p></p><p></p><p></p><h3><b>2.</b></h3><h3><b>Поиск по изображению</b></h3><p></p><p></p><ul><li><p>Использовать <b>Selenium</b> или <b>Playwright</b> для автоматизации браузера.</p></li><li><p>Для Google:</p><p></p><ul><li><p><a href="https://images.google.com/">https://images.google.com/</a></p></li><li><p>Кнопка поиска по изображению.</p></li></ul><p></p></li><li><p>Для Яндекс:</p><p></p><ul><li><p><a href="https://yandex.ru/images/">https://yandex.ru/images/</a></p></li><li><p>Поиск по изображению.</p></li></ul><p></p></li><li><p>Загружаемое фото должно быть отправлено в поиск, и пользователь не должен видеть браузер (автоматический режим).</p></li></ul><p></p><p></p><p></p><h3><b>3.</b></h3><h3><b>Обработка результатов</b></h3><p></p><p></p><ul><li><p>Собрать:</p><p></p><ul><li><p>Ссылки на страницы с совпадениями.</p></li><li><p>Названия сайтов (если возможно).</p></li><li><p>Скриншот фрагмента страницы (опционально).</p></li></ul><p></p></li><li><p>Исключать ссылки на домены типа <a href="http://google.com">google.com</a>, <a href="http://yandex.ru">yandex.ru</a> (если дублируются).</p></li></ul><p></p><p></p><p></p><h3><b>4.</b></h3><h3><b>Вывод результатов</b></h3><p></p><p></p><ul><li><p>Отобразить результаты в таблице:</p><p></p><ul><li><p>Название изображения</p></li><li><p>Источник (Google / Яндекс)</p></li><li><p>URL найденного сайта</p></li><li><p>Время поиска</p></li></ul><p></p></li><li><p>Сохранить как:</p><p></p><ul><li><p>Excel (XLSX)</p></li><li><p>CSV</p></li></ul><p></p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>?? Технологии и стек:</b></h2><p></p><p><b>Цель</b></p><p><b>Инструмент</b></p><p>Ядро автоматизации</p><p>Selenium или Playwright (Python)</p><p>Интерфейс (если нужен)</p><p>Flask или FastAPI</p><p>Парсинг HTML</p><p>BeautifulSoup, lxml</p><p>Работа с изображениями</p><p>Pillow, imagehash (для будущего анализа)</p><p>Экспорт результатов</p><p>pandas, openpyxl</p><p>Хранение логов (опц.)</p><p>SQLite или JSON</p><p></p><hr /><p></p><p></p><h2><b>? Антибот-защита:</b></h2><p></p><p></p><ul><li><p>Обход reCAPTCHA не обязателен, но скрипт должен:</p><p></p><ul><li><p>Уметь <b>перезапускаться после ошибки</b>.</p></li><li><p>Работать с <b>Headless=False</b> (чтобы в случае блокировки можно было войти вручную).</p></li></ul><p></p></li><li><p>Поддержка прокси (опционально).</p></li><li><p>Ротация User-Agent.</p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>? Тесты:</b></h2><p></p><p></p><ul><li><p>Загружаем 5 тестовых изображений.</p></li><li><p>Получаем не менее 3 совпадений на изображение.</p></li><li><p>Проверка экспортируемого отчёта — открытие в Excel / Google Sheets.</p></li><li><p>Проверка корректности URL.</p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>? Бонус (возможности для расширения в будущем):</b></h2><p></p><p></p><ul><li><p>Сравнение найденных изображений с оригиналом (по hash-сравнению).</p></li><li><p>Рассылка отчёта по email.</p></li><li><p>Telegram-бот для оповещений.</p></li><li><p>Личный кабинет с историей проверок.</p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>? Сроки:</b></h2><p></p><p></p><ul><li><p>MVP-версия (одиночный поиск + отчёт): <b>7–10 рабочих дней</b></p></li><li><p>Веб-интерфейс: +3 дня</p></li><li><p>Документация + инструкция по запуску: обязательно</p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>? Входящие данные от заказчика:</b></h2><p></p><p></p><ul><li><p>Набор тестовых изображений (5–10 шт.)</p></li><li><p>Ожидаемый формат отчёта</p></li><li><p>Платформа: локально (на Windows/macOS/Linux) или сервер (VPS)</p></li></ul><p></p><p></p><hr /><p></p><p></p><h2><b>? Требования к разработчику:</b></h2><p></p><p></p><ul><li><p>Уверенное знание Python.</p></li><li><p>Опыт работы с Selenium / Playwright.</p></li><li><p>Умение обходить антибот-защиту.</p></li><li><p>Умение сделать стабильный, масштабируемый скрипт.</p></li><li><p>Готовность поддерживать/развивать проект.</p></li></ul>