Парсер изменения цены товара с Озона для отправки уведомления в Телеграм
Пытаюсь сделать парсер цены на определенный нужный мне товар, чтобы при снижении цены мне приходило уведомление в ТГ боте.
Файл 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 час)
Вопрос - как это реализовать, чтобы работало корректно?