Проект для автоматизированного сбора данных с TradeMap с графическим интерфейсом
Программа автоматизирует сбор и анализ торговых данных с TradeMap Имеет два интерфейса:
- 🖥️ Desktop GUI на CustomTkinter с поддержкой системного трея
- 🌐 Web интерфейс на Flask
- 🔄 Автоматизированный сбор данных через Selenium WebDriver
- 🖥️ Десктопный и веб-интерфейсы управления
- 📊 Экспорт данных в Excel через Pandas
- ⚙️ Гибкая настройка через JSON конфигурацию
- 🔒 Поддержка авторизации на TradeMap
- 🎯 Настраиваемая глубина парсинга (4 уровня)
- 🌓 Темная/светлая тема интерфейса
- 🔔 Системные уведомления через Pystray
- 🖼️ Обработка изображений через Pillow
- 🔄 Асинхронные HTTP запросы через Requests
- 🤖 Автоматическая обработка капчи
- 📑 Подробное логирование операций
- Python 3.x - основной язык
- Selenium WebDriver - автоматизация браузера
- Flask - веб-сервер
- Requests - HTTP клиент
- Pandas - обработка данных
- CustomTkinter - десктопный GUI
- HTML/CSS/JS - веб-интерфейс
- Pystray - системный трей
- Pillow - обработка изображений
Готовые исполняемые файлы и исходный код доступны в разделе Releases:
- 📥 TradeMap-Parser-vX.X.X.zip - архив с исполняемыми файлами
- 🖥️ gui_app.exe - для запуска графического интерфейса
- 🌐 app.exe - для запуска веб-версии
- 📦 Source code (zip) - архив с исходным кодом
- 📦 Source code (tar.gz) - исходный код в формате tar.gz
Для установки:
- Скачайте последний релиз TradeMap-Parser-vX.X.X.zip
- Распакуйте архив в удобное место
- Запустите нужный файл:
- 🖥️ gui_app.exe - для графического интерфейса
- 🌐 app.exe - для веб-версии
-
Установите Git LFS:
- Скачайте установщик с git-lfs.github.com
- Запустите установщик
- Выполните команду:
git lfs install
-
Склонируйте репозиторий:
git clone https://github.com/elstrm2/TradeMap-Parser-Project.git cd TradeMap-Parser-Project git lfs pull
- Клонируйте репозиторий или скачайте исходный код из Releases
- Создайте виртуальное окружение:
python -m venv venv .\venv\Scripts\activate
- Установите зависимости:
pip install -r requirements.txt pip install pyinstaller
- Соберите exe файлы:
pyinstaller --onefile gui_app.py pyinstaller --onefile app.py
- Готовые файлы появятся в папке dist/
- Выполните шаги 1-3 из варианта "Сборка из исходников"
- Скачайте ChromeDriver для вашей версии Chrome
- Добавьте путь к драйверу в системные переменные
- Запустите скрипты:
python gui_app.py # для GUI версии python app.py # для веб-версии
- Запустите gui_app.exe
- Используйте интерфейс для управления парсером
- Поддерживается сворачивание в трей
- 🔵 Start Server - Запуск сервера парсера
- 🔴 Stop Server - Остановка работы сервера
- ⬇️ Minimize to Tray - Сворачивание программы в трей
- 🌐 Open Server Interface - Открытие веб-интерфейса в браузере
- 🌓 Theme Switch - Переключение между светлой/темной темой (☀/☾)
- 📊 Progress Bar - Показывает статус загрузки сервера
- 💬 Server Log - Отображает системные сообщения и ошибки
- 🚦 Server Status - Текущий статус сервера:
- 🔴 Stopped - Сервер остановлен
- 🟡 Starting - Сервер запускается
- 🟢 Running - Сервер работает
- Запустите app.exe
- Откройте браузер и перейдите по адресу localhost
- Используйте веб-интерфейс для управления
- 🟢 Запустить - Запуск процесса парсинга
- 🔴 Остановить - Остановка парсинга
- 🌓 Переключатель темы - Смена светлой/темной темы интерфейса
- 📝 Логин/Пароль - Учетные данные для TradeMap
- 📦 Коды товаров - Список кодов через запятую (например "3102")
- 🌍 Страны - Список стран на английском через запятую
- ⚙️ Настройки парсинга:
- ⏱️ Задержка действий (0.1-10 сек)
- ⌛ Таймаут страницы (1-60 сек)
- 🔄 Количество попыток (1-10)
- 📥 Таймаут загрузки (5-300 сек)
- 🤖 Таймаут капчи (30-300 сек)
- 📌 Закрепление заголовка (да/нет)
- 📄 Парсинг страниц (все/последняя)
- ⚖️ Единица измерения (кг/тонны)
- 🎯 Глубина парсинга (уровни 1-4)
- 🚦 Статус бота - Текущее состояние парсера
- 🕒 Время обновления - Последнее обновление статуса
- ❌ Последняя ошибка - Информация об ошибках
- 🔄 Очистка ошибок - Слайдер для сброса ошибок
Настройки парсера хранятся в файле config.json:
- 👤
username- email для входа на TradeMap - 🔑
password- пароль для входа
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
username |
Email для входа на TradeMap | "" (пустой) |
password |
Пароль для входа на TradeMap | "" (пустой) |
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
product_codes |
Коды товаров для анализа (например ["3102"]) | [] |
countries |
Список стран для анализа (на английском) | [] |
parse_depth |
Глубина анализа данных (level1-level4) | "level1" |
quantity_unit |
Единица измерения количества | "Kilograms" |
parse_all_pages |
Парсинг всех доступных страниц | false |
| Параметр | Описание | Диапазон | По умолчанию |
|---|---|---|---|
action_delay |
Задержка между действиями | 0.1-10 сек | 0.5 |
page_timeout |
Ожидание загрузки страницы | 1-60 сек | 5 |
retry_count |
Количество повторных попыток | 1-10 | 3 |
download_timeout |
Таймаут загрузки | 5-300 сек | 30 |
captcha_timeout |
Время ожидания капчи | 30-300 сек | 60 |
freeze_header |
Фиксация заголовков таблицы | true/false | true |
{
"username": "[email protected]",
"password": "password123",
"product_codes": ["3102"],
"countries": ["Canada"],
"action_delay": 0.5,
"page_timeout": 5,
"retry_count": 3,
"download_timeout": 30,
"captcha_timeout": 60,
"freeze_header": false,
"parse_all_pages": false,
"quantity_unit": "Kilograms",
"parse_depth": "level4"
}Есть два способа настройки параметров:
- 📝 Ручное редактирование:
- Откройте файл bot/config.json в любом текстовом редакторе
- Измените нужные параметры
- Сохраните файл
- 🌐 Через веб-интерфейс:
- Запустите программу
- Откройте localhost в браузере
- Используйте форму настройки для изменения параметров
- Все изменения сохранятся автоматически
Проект распространяется под MIT лицензией с ограничением на коммерческое использование. Подробности в файле LICENSE.
При возникновении вопросов или проблем создавайте issue в репозитории.