Парсер изменения цены товара с Озона для отправки уведомления в Телеграм

Пытаюсь сделать парсер цены на определенный нужный мне товар, чтобы при снижении цены мне приходило уведомление в ТГ боте.

Файл Main.py

import requests
from bs4 import BeautifulSoup
from telegram import Bot
import time

# Загрузка настроек из config.py
from config import TOKEN, CHAT_ID, PRODUCT_URL

# Функция для получения цены товара
def get_product_price(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    try:
        response = requests.get(url)
        response.raise_for_status()
        soup = BeautifulSoup(response.text, 'html.parser')
        price_tag = soup.find('span', {'class': 'b9r'})
        price = float(price_tag.text.replace(' ', '').replace('₽', '').replace(',', '.'))
        return price
    except Exception as e:
        print(f"Ошибка при получении цены: {e}")
        return None

# Основная функция для мониторинга цены и отправки уведомления
def check_price():
    previous_price = None
    
    while True:
        current_price = get_product_price(PRODUCT_URL)
        
        if current_price is not None:
            if previous_price is not None and current_price < previous_price:
                message = f"Цена упала! Текущая цена: {current_price} ₽"
                bot = Bot(token=TOKEN)
                bot.send_message(chat_id=CHAT_ID, text=message)
            
            previous_price = current_price
        
        time.sleep(3600)  # Проверять цену каждый час

# Запуск функции мониторинга цены
check_price()

Вылазит ошибка 403 Client Error: Forbidden и как её исправить я не знаю. Ссылка на товар https://www.ozon.ru/product/kostyum-takticheskiy-muzhskoy-demisezonnyy-turisticheskiy-na-flise-huntsman-gorka-5-rybolovnyy-836148527

Файл Config.py

TOKEN = 'token' # номер токена
CHAT_ID = 'chat_id'  #  ID чата в Telegram
PRODUCT_URL = 'https://www.ozon.ru/product/kostyum-takticheskiy-muzhskoy-demisezonnyy-turisticheskiy-na-flise-huntsman-gorka-5-rybolovnyy-836148527'  # Ссылка на товар
MONITOR_INTERVAL = 3600  # Интервал мониторинга в секундах (1 час) 

Вопрос - как это реализовать, чтобы работало корректно?


Ответы (0 шт):