
ZheZhemon
Автоматизований парсер eBay з push-сповіщеннями
🧩 Завдання
Клієнт мав потребу у сервісі для постійного моніторингу оголошень на eBay за заздалегідь заданими параметрами (категорія, ключові слова, модель, бренд, діапазон цін, продавець тощо). Основні цілі:
Автоматично виявляти нові або оновлені оголошення.
Фільтрувати товари за рейтингом продавця (більше 96% і понад 300 відгуків).
Відправляти Telegram-сповіщення з кнопками для швидких дій (приховати/забанити).
Забезпечити реальну багатопотоковість для підтримки великої кількості запитів без перевищення лімітів eBay API.
🛠 Рішення
Було розроблено асинхронний Python-сервіс, який виконує:
🔍 Пошук:
Використання eBay Browse API для здійснення пошуку з урахуванням
aspect_filter
(наприклад, Brand, Model, Condition).Динамічна побудова запитів із перевіркою валідності
category_id
та додаткових фільтрів.
🧠 Обробка результатів:
Парсинг кожного результату: ціна, доставка, продавець, зображення.
Автоматичне визначення “топових” продавців.
Облік зміни ціни та видалення неактуальних товарів із бази.
📦 Зберігання:
PostgreSQL база для зберігання параметрів пошуку та знайдених товарів.
Уникнення дублікатів за URL-ами.
Лічильник повторень для одного й того ж лінку (
scraped_links
).
🤖 Telegram інтеграція:
Повідомлення надсилаються в канал за допомогою Telegram Bot API.
Вбудовані кнопки: "🚫 Ban", "🙈 Hide" із посиланням на бекенд-ендпоїнти.
🧠 Перерозподіл навантаження:
Сервіс розділяє пошуки між ключами eBay API, контролюючи кількість запитів на кожен.
Використано паралельне асинхронне трекінг-запускання задач для кожного пошуку.
🔄 Ревалідація даних:
Система перевіряє зміну
SearchParameters
і в разі зміни перезапускає весь процес для оновлення індексації.
📈 Результат
⚡ Моніторинг десятків параметрів в реальному часі без перевищення API-лімітів.
🔔 Своєчасні push-сповіщення про нові або здешевлені товари.
📊 Автоматичне оновлення цін та очищення бази від неактуальних позицій.
🛡 Можливість вручну банити або ховати товар прямо з Telegram.
🧪 Технології
Python 3.11
PostgreSQL
asyncio
psycopg2
Telegram Bot API
eBay Browse API
dotenv, requests
Fly.io