- 5
- Маркетплейсов на каждый домен
- 1 клик
- Установщик Windows (сборка в облаке)
- Fernet
- Шифрование учётных данных при хранении
Технологии
- Python
- Camoufox
- Incogniton
- Google Sheets API
- PBKDF2 + Fernet
- PyInstaller
- GitHub Actions
Задача
Сравнивать цены на бэклинки для множества доменов на нескольких маркетплейсах утомительно: каждый сайт работает по-своему, где-то нужно выбрать проект или войти в аккаунт, и у каждого свои особенности ценообразования. Делать это вручную для большого списка доменов медленно и чревато ошибками — а результат должен попасть в нужный столбец общей Google Таблицы, чтобы самый дешёвый вариант был очевиден.
Подход
Я построил десктопный инструмент с локальным веб-интерфейсом (бэкенд на Python), который для каждого домена проверяет пять маркетплейсов бэклинков, разбирает доступность и цены по устойчивым эвристикам и записывает лучшую цену в нужный столбец Google Таблицы через сервисный аккаунт. Он использует антидетект-браузеры (Camoufox / Incogniton) с сохранёнными сессиями — первый вход открывается видимым, чтобы вы вручную авторизовались или решили капчу, после чего сессия переиспользуется в фоновом режиме. Все учётные данные шифруются при хранении с помощью PBKDF2 и Fernet (мастер-пароль нигде не сохраняется), а правила конкретных площадок — комиссии, выбор проекта, точное совпадение — редактируются прямо в интерфейсе.
Результаты
Готовый к поставке защищённый внутренний продукт — упакованный .exe, живая синхронизация с Google Таблицами и переопределяемые селекторы для каждой площадки ради устойчивости. Установщик в один клик автоматически собирается в облаке через GitHub Actions, поэтому нетехнический коллега может установить и запустить его без Python и без настройки.
Инженерные решения
- Для каждого домена проверяет пять маркетплейсов бэклинков, разбирает доступность и цены по устойчивым эвристикам и записывает самую низкую цену в нужный столбец Google Таблицы.
- Два антидетект-браузера (Camoufox / Incogniton) с сохранёнными сессиями — вход один раз, дальше работа в фоновом режиме.
- Все учётные данные, ключи и настройки шифруются при хранении через PBKDF2 и Fernet; мастер-пароль никогда не сохраняется.
- Переопределяемые селекторы и особые ценовые правила для каждой площадки (комиссии, выбор проекта, точное совпадение) редактируются в интерфейсе.
- Поставляется как установщик Windows в один клик, собираемый в облаке через GitHub Actions CI.
Скриншоты и схемы
Реальные снимки интерфейса и графики — исходный код закрыт, бренды клиентов не показаны.
Подробный разбор
Каждый маркетплейс описан как подключаемый модуль площадки со своими селекторами и особыми правилами — один добавляет фиксированную комиссию за домен, другому нужно выбрать проект перед поиском, третий доверяет только точному 100% совпадению домена. Именно то, что эти правила заданы редактируемыми переопределениями, а не зашиты в код, сохраняет устойчивость инструмента, когда маркетплейс меняет вёрстку.
Безопасность была жёстким требованием, потому что инструмент хранит логины маркетплейсов и ключ сервисного аккаунта Google. Всё чувствительное шифруется при хранении ключами Fernet, выведенными через PBKDF2, и разблокируется на время сессии мастер-паролем, который нигде не сохраняется. Всё это упаковано через PyInstaller и выпускается как установщик Windows в один клик, собираемый пайплайном GitHub Actions — воспроизводимо и предельно просто для нетехнического пользователя.