مقارنة الأسعار، 3 متاجرالتطوير والتخصيص

محلل بلغة Python يقارن أسعار المنتجات نفسها في 3 متاجر إلكترونية مفتوحة في جدول واحد

جاهز عادةً خلال 15 دقيقةالتعديلات مشمولةفحص الجودة
الباقات
حماية الدفعالتفاصيل
  • التعديلات ضمن الباقة مجانية.
  • إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.

يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

محلل بلغة Python يقارن أسعار المنتجات نفسها في 3 متاجر إلكترونية مفتوحة في جدول واحد

مثال على النتيجة

مثال على الباقة القياسية

محلل كتالوج مورّد أدوات الحدائق إلى Excel

شكل النتيجة

رقم الصنفالاسمالسعرمتوفرالوزنالصورة
GT-1042مقص تقليم، 20 مم18.90نعم0.24 كغ…/gt-1042.jpg
GT-1187منشار قابل للطي، 210 مم24.50نعم0.31 كغ…/gt-1187.jpg
GT-2210مقص تشذيب السياج، شفرة متموجة39.00لا1.10 كغ…/gt-2210.jpg
GT-3305مجرفة يدوية، فولاذ مقاوم للصدأ9.80نعم0.18 كغ…/gt-3305.jpg
GT-4120خرطوم حديقة 25 م، 1/2"42.00نعم2.90 كغ…/gt-4120.jpg

يضم الملف في هذا المثال 1,236 منتجًا من 52 صفحة قائمة.

جزء من الكود

def product_links(list_url: str) -> Iterator[str]:
    """روابط صفحات المنتجات من كل صفحات القائمة، مع اتباع رابط «التالي»."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """صفحة مفتوحة واحدة، بوتيرة مهذبة: فاصل زمني بين الطلبات وبضع محاولات عند الأخطاء."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s أجاب بالرمز %s، المحاولة %d من 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} لم تُفتح بعد 3 محاولات")

الملفات: أرشيف ZIP يضم scraper.py، وsettings.ini (صفحة البداية، والفاصل الزمني بين الطلبات، واسم الملف)، وrequirements.txt، وملف README عن التثبيت والتشغيل. يقرأ الصفحات المفتوحة فقط، صفحة كل ثانيتين، ويتحقق أولًا من ملف robots.txt الخاص بالموقع. يشغّله العميل على كمبيوتره الخاص.

العميل: متجر إلكتروني لمستلزمات الحدائق يعيد بيع أدوات أحد المورّدين؛ لدى المورّد كتالوج مفتوح على موقعه، لكن دون ملف لقائمة الأسعار. المهمة: المرور على صفحات قوائم الكتالوج، وفتح صفحة كل منتج، وحفظ رقم الصنف والاسم والسعر والتوفر والوزن ورابط الصورة الرئيسية في Excel، لمقارنة الأسعار مرة كل أسبوع.

العميل وجميع التفاصيل افتراضية.

عن هذه الخدمة

يضع هذا المحلل أسعار المنتجات نفسها من ثلاثة متاجر إلكترونية مفتوحة كحد أقصى جنبًا إلى جنب: صف واحد لكل منتج، مع سعر كل متجر، والسعر القديم، والتوفر، والرابط، وتاريخ الفحص. المتاجر الثلاثة متاحة مع الباقة المميزة؛ أما الباقتان الأساسية والقياسية فتقرآن متجرًا واحدًا، كبداية أو تجربة. تُطابق المنتجات برمز تعرضه المتاجر، مثل الباركود أو رقم القطعة لدى الشركة المصنّعة، أو بالروابط التي تحددها لكل منتج: فالأسماء وحدها تختلف أكثر من أن تُطابق بأمان. أرسل المواقع، وصفحة منتج من كل منها محفوظة من متصفحك، وقائمة منتجاتك. تحصل على كود Python وملف إعدادات وملف README وتشغّله على كمبيوترك. يقرأ الصفحات المفتوحة بوتيرة مهذبة، ولا يسجّل الدخول أبدًا، ولا يتجاوز اختبارات captcha أو الحماية، ولا يقرأ Amazon أو Google. أنت من يقرر ما إذا كانت شروط المتاجر تسمح بذلك؛ وأي تغيير لاحق في التصميم يتطلب تحديثًا.

ما المشمول

  • ما الذي تحصل عليهأرشيف ZIP يضم كود Python وملف إعدادات وملف README بتعليمات خطوة بخطوة؛ ويُعرض الكود أيضًا في صفحة الطلب.
  • صف لكل منتجسعر كل متجر وتوفره ورابطه جنبًا إلى جنب
  • المطابقة بالرمز أو بروابطكالباركود، أو رقم القطعة لدى الشركة المصنّعة، أو روابط تحددها
  • تاريخ الفحصفي كل صف، لتُقارن مرات التشغيل
  • وتيرة مهذبةفاصل زمني بين الصفحات يُضبط في الإعدادات
  • يعمل على كمبيوتركWindows أو macOS أو Linux، مع Python

كيف يعمل

  1. 1
    المتاجرترسل المتاجر وصفحات منتجات محفوظة وقائمة منتجاتك
  2. 2
    المحللنكتب الكود مع دليل تشغيله
  3. 3
    التنفيذتشغّله وتتحقق من بعض الصفوف في كل متجر
  4. 4
    التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ

ما نحتاجه منك

المتاجر الثلاثة (أو متجر واحد للباقتين الأساسية والقياسية) وصفحة منتج من كل منها، محفوظة من متصفحك (ملف > حفظ الصفحة باسم). قائمة منتجاتك مع الرمز الذي تعرضه المتاجر، مثل الباركود، أو جدول برابط كل منتج في كل متجر. الحقول التي تحتاجها لكل متجر، مثل: السعر، والسعر القديم، والتوفر، والرابط. وعدد المنتجات تقريبًا. CSV أو Excel أو JSON.

سنسألك:

  • أي متاجر؟
  • طريقة مطابقة المنتجات
  • الحقول لكل متجر
  • كم عدد المنتجات تقريبًا؟

قارن بين الباقات

الباقاتالأساسيةمتجر واحد للبدء‏21 US$القياسيةمتجر واحد، فئة كاملة‏42 US$المميزة3 متاجر في جدول واحد‏76 US$
مدة التنفيذ1 يوم2 يوم3 أيام
التعديلات123
المواقع11حتى 3
أنواع الصفحات12 (الفئة والمنتج)حتى 3
الحقولحتى 10حتى 25حتى 25 في كل منها
يمر على صفحات قائمةلانعمنعم
ملف النتائجCSVExcel أو CSVExcel أو CSV أو JSON
إزالة التكرارات، والاستئناف من حيث توقفلالانعم
اطلب الأساسيةاطلب القياسيةاطلب المميزة

حماية الدفع

تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.

  • سعر ثابتلا يتغير سعر الباقة بعد الدفع.
  • المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
  • فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
  • تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
  • القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
  • إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
كيف يعمل →

الأسئلة والأجوبة

لماذا تقارن الباقة المميزة وحدها بين 3 متاجر؟

لكل متجر صفحاته الخاصة، لذا يحتاج كل منها إلى جزء خاص به من الكود. تغطي الباقتان الأساسية والقياسية متجرًا واحدًا، وهي طريقة جيدة لتجربته أولًا.

ماذا لو لم يعرض متجر الباركود؟

حينها أرسل إلينا جدولًا برابط كل منتج في كل متجر. نحن لا نطابق المنتجات بالتخمين من أسمائها.

هل يمكنه تضمين Amazon أو Google Shopping أو متاجر الشبكات الاجتماعية؟

لا. Amazon وGoogle وLinkedIn والشبكات الاجتماعية مستبعدة: شروطها تمنع ذلك. أما المتاجر الأخرى، فأنت من يقرر ما إذا كانت شروطها تسمح بذلك.

هل يمكنه مقارنة تكاليف التوصيل أيضًا؟

فقط حين تعرضها صفحة المنتج لأي زائر. لا يضيف أبدًا إلى السلة، ولا يملأ عنوانًا، ولا يسجّل الدخول.

لم تجد إجابتك؟

الباقات