← كل المقالات

بناء أداة تتبع أسعار في الوقت الفعلي باستخدام FourA

تتغير أسعار المنافسين كل ساعة. إليك كيفية بناء أداة تتبع أسعار مؤتمتة عبر مئات صفحات المنتجات باستخدام استدعاء API واحد ولغة Python أساسية.

تُتخذ قرارات التسعير في التجارة الإلكترونية بسرعة. يخفض أحد المنافسين سعره بنسبة 5%، وخلال ساعات، يلاحظ العملاء ذلك. الشركات الرابحة هي التي تلاحظ أولاً.

كان بناء نظام لمراقبة الأسعار يتطلب في السابق صيانة بنية تحتية لـ proxy، والتعامل مع bot detection، وكتابة scrapers مخصصة لكل موقع مستهدف. تختصر FourA كل هذا التعقيد في استدعاء API واحد.

المشكلة

لا يمكن للتحقق اليدوي من الأسعار أن يتوسع. حتى متجر التجارة الإلكترونية الصغير الذي يملك 50 منافساً يحتاج إلى تتبع مئات صفحات المنتجات. وبمعدل ثلاثة فحوصات يومياً، يعني ذلك أكثر من 1000 request يومياً، ويكون كل منها عرضة للحظر، أو لـ rate limit، أو للتعطل بسبب إعادة تصميم الموقع.

النهج

إليك كيف يبدو مسار مراقبة الأسعار الجاهز للإنتاج باستخدام FourA:

1. حدد كتالوج منتجاتك

ابدأ بقائمة منظمة من عناوين URL للمنافسين وselectors الخاصة بـ CSS حيث تظهر الأسعار:

products = [
    {"sku": "WDG-001", "competitor": "Store A", "url": "https://store-a.com/widget", "selector": ".price-current"},
    {"sku": "WDG-001", "competitor": "Store B", "url": "https://store-b.com/products/widget", "selector": "[data-price]"},
]

2. الجلب والتحليل

يتولى FourA المهام المعقدة: TLS fingerprinting، وتدوير proxy، وتصيير JavaScript. يرسل كودك فقط URL ويستلم HTML في المقابل:

import requests
from bs4 import BeautifulSoup

def get_price(product):
    resp = requests.post("https://eu.api.foura.ai/api/v1/tasks", headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    }, json={"url": product["url"], "type": "proxy"})
    
    html = resp.json()["content"]
    soup = BeautifulSoup(html, "html.parser")
    el = soup.select_one(product["selector"])
    return float(el.text.strip().replace("$", "").replace(",", "")) if el else None

3. تتبع التغييرات بمرور الوقت

قم بتخزين النتائج في قاعدة بيانات أو ملف CSV. حدد التغييرات المهمة لإرسال التنبيهات:

if abs(new_price - last_price) / last_price > 0.03:  # 3% threshold
    send_alert(f"{product['competitor']} changed {product['sku']} from ${last_price} to ${new_price}")

4. الجدولة باستخدام Cron

قم بتشغيل أداة التتبع كل ساعة أو كل بضع ساعات، اعتمادا على تقلب الأسعار في سوقك.

لماذا ينجح هذا الحل

  • لا توجد بنية تحتية تحتاج إلى صيانة. لا خوادم proxy، ولا مزارع متصفحات، ولا منطق تدوير عناوين IP.
  • يتكيف مع تغيرات أنظمة الحماية. يعيد نوع الـ proxy في FourA المحاولة تلقائيا عبر مسارات مختلفة عند حظر أحدها.
  • يتوسع خطيا. إضافة 100 منتج إضافي تعني فقط إجراء 100 استدعاء API إضافي، دون الحاجة إلى أي تغييرات معمارية.

البدء

يعمل مسار المعالجة الكامل أعلاه (باستثناء منطق التنبيهات) في أقل من 50 سطر برمجي بلغة Python. وبمجرد تشغيله لـ 50 منتجا، فإن التوسع إلى 500 منتج يتطلب فقط قائمة أطول. يظل استدعاء الـ API كما هو، ويبقى التحليل كما هو، وتظل الجدولة كما هي. هذا هو الهدف الأساسي.

يتوفر كود المثال كاملا في دليل الإرشادات، بينما تغطي وثائق الـ API كل المعاملات التي ستحتاجها لتخصيصه.