UrlPriceParser
🏷️ UrlPriceParser (Парсер цен)
Простой Python-скрипт для отслеживания цены на конкретный товар на сайте интернет-магазина.
Он загружает HTML-страницу товара, находит в ней тег с ценой, очищает ее от символов валюты/пробелов и сравнивает с "целевой ценой" (), установленной в коде.
⚠️ Важное замечание: Привязка к сайту
Обратите внимание: Текущая версия скрипта настроена специально для сайта "Читай-город" ().
HTML-селектор () в коде заточен именно под их верстку. Если вы захотите использовать этот скрипт для другого сайта (Ozon, DNS и т.д.), вам гарантированно придется:
- Изменить
на ваш товар.URL - Найти новый HTML-тег/класс для цены на том сайте и изменить селектор в коде (см. раздел "Хрупкость парсера").
🚀 Как использовать
1. Клонирование репозитория
2. Установка зависимостей
Этому скрипту требуются три библиотеки. Установите их с помощью :
3. Настройка скрипта
Откройте (или как вы назвали свой файл) в любом текстовом редакторе. Вам нужно изменить две переменные вверху файла:
: Вставьте сюда полную ссылку на страницу товара ("Читай-город" или другого сайта, если вы готовы менять код).URL: Укажите цену (просто числом), при достижении которой скрипт должен вас обрадовать.TARGET_PRICE
4. Запуск
Откройте терминал (консоль) в папке проекта и запустите скрипт:
Вы увидите один из двух результатов:
✅ Текущая цена: 857 ₽
Пока дорого. Твоя цель: 800 ₽
Или:
✅ Текущая цена: 790 ₽
🎉 ЦЕНА СНИЗИЛАСЬ! 🎉
Цель: 800 ₽. Пора брать!
🚨 ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: "Хрупкость" парсера
Этот скрипт — веб-парсер. Его работа полностью зависит от HTML-структуры сайта, который он парсит.
В коде "зашит" (жестко прописан) конкретный CSS-селектор для поиска цены "Читай-города":
Если "Читай-город" изменит дизайн своей страницы (например, переименует класс во что-то другое), скрипт немедленно сломается и выдаст ошибку "Не смог найти тег с ценой".
Это нормальное и ожидаемое поведение для любого парсера.
Как это починить?
Если скрипт сломался:
- Откройте
в вашем браузере.URL - Наведите мышку на цену, нажмите правую кнопку и выберите "Посмотреть код" (или "Инспектировать элемент").
- Найдите, в каком теге (
,span...) и с какимdivтеперь находится цена.class - Обновите этот селектор в коде в строке
.soup.find(...)
🛠️ Использованные технологии
- Python 3
- requests: Для выполнения HTTP-запросов и скачивания HTML.
- BeautifulSoup4 (bs4): Для парсинга (разбора) HTML-кода.
- lxml: "Движок" для BeautifulSoup, который быстро разбирает HTML.