Программа Парсер Цен Api [top] May 2026
# Псевдокод для Scrapy def parse_price(self, response): # 1. Пробуем найти JSON-LD (схема Schema.org) json_data = response.xpath('//script[@type="application/ld+json"]/text()').get() if json_data: price = extract_price_from_json(json_data) # 2. Ищем стандартные CSS-классы if not price: price = response.css('.price-current__number::text').get()
# Проверяем базу данных price = await db.fetch_one("SELECT * FROM prices WHERE product_id=$1 ORDER BY timestamp DESC LIMIT 1", product_id) if not price: raise HTTPException(status_code=404, detail="Product not found") программа парсер цен api
return normalize_price(price) # убираем пробелы, заменяем запятую Предположим, мы используем FastAPI (Python) для простоты и производительности. Модели данных from pydantic import BaseModel from datetime import datetime class PriceRecord(BaseModel): product_id: str source_url: str price: float currency: str = "RUB" timestamp: datetime in_stock: bool Эндпоинты | Метод | URL | Описание | |-------|-----|----------| | GET | /api/v1/prices/product_id | Получить последнюю цену | | GET | /api/v1/prices/history/product_id?from=date&to=date | Исторические цены | | POST | /api/v1/parse/request | Запросить принудительный парсинг сейчас | | GET | /api/v1/products/search?query=...&min_price=... | Поиск товаров с фильтрацией по цене | Пример реализации (FastAPI) from fastapi import FastAPI, BackgroundTasks, HTTPException from redis import Redis import json app = FastAPI() cache = Redis() # Псевдокод для Scrapy def parse_price(self