Все проекты
Веб-скрейпинг · десктопное приложение2025

Агрегатор цен на бэклинки

Защищённый десктопный инструмент, который проверяет домен на пяти маркетплейсах и записывает самую низкую цену обратно в Google Таблицу.

Приватный репозиторий
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.

Скриншоты и схемы

Реальные снимки интерфейса и графики — исходный код закрыт, бренды клиентов не показаны.

Пять маркетплейсов — сопоставление столбцов, правила комиссий и зашифрованные сохранённые входы.
Вкладка запуска — выберите площадки, наблюдайте за браузером или работайте в фоне.
Процесс определения цены — список доменов → пять маркетплейсов → минимальная цена → таблица.
Безопасность учётных данных — PBKDF2 и Fernet, мастер-пароль не сохраняется.

Подробный разбор

Каждый маркетплейс описан как подключаемый модуль площадки со своими селекторами и особыми правилами — один добавляет фиксированную комиссию за домен, другому нужно выбрать проект перед поиском, третий доверяет только точному 100% совпадению домена. Именно то, что эти правила заданы редактируемыми переопределениями, а не зашиты в код, сохраняет устойчивость инструмента, когда маркетплейс меняет вёрстку.

Безопасность была жёстким требованием, потому что инструмент хранит логины маркетплейсов и ключ сервисного аккаунта Google. Всё чувствительное шифруется при хранении ключами Fernet, выведенными через PBKDF2, и разблокируется на время сессии мастер-паролем, который нигде не сохраняется. Всё это упаковано через PyInstaller и выпускается как установщик Windows в один клик, собираемый пайплайном GitHub Actions — воспроизводимо и предельно просто для нетехнического пользователя.