تسجيل الدخول إنشاء حساب
مراقبة الأسعار

بروكسي لمراقبة الأسعار لا تلاحظه المتاجر الإلكترونية

تعرض المتاجر أسعارًا مختلفة لكل منطقة وتحظر من يسأل كثيرًا من عنوان واحد. أداة تتبع الأسعار على Advanced.name توزّع طلباتها على عشرات الآلاف من عناوين IPv4 وتسأل كل متجر من منطقة مشتريه.

  • 30,000 IP في الباقة رقم 4
  • أسعار من منطقة المشتري
  • تحديث القائمة كل 10 دقائق
ممر مستودع وجهاز لوحي يعرض رسمًا بيانيًا للأسعار
مراقبة الأسعار

ما تحتاجه أداة تتبع الأسعار وما تقدمه الباقة

تزور الأداة الصفحات نفسها كل ساعة. هذا النمط تحديدًا هو ما يُحظر، وعلى المجموعة أن تخفيه.

ما تحتاجه المهمةما تقدمه الباقة

عنوان IP مختلف في كل زيارة للمنتج نفسه

في الباقة رقم 4 هناك 30,000 عنوان: صفحة المنتج ترى العنوان نفسه مرة في الشهر

الأسعار كما يراها المشترون المحليون

مجموعات أوروبا ورابطة الدول المستقلة والصين؛ والمزيج العالمي للولايات المتحدة وغيرها

آلاف المنتجات تُفحص كل ساعة

حتى 2,500 خيط في الباقة رقم 4، و5,000 في الباقة رقم 6

صفحات بالصور والسكربتات، لا JSON فقط

لا حد للحركة: اجلب الصفحات كاملة بقدر ما يتطلب الجدول

بروكسيات غير محدودة

اختر الباقة حسب حجم الكتالوج

عشرة آلاف منتج في الساعة تكفيها الباقة رقم 3؛ ومراقبة سوق إلكتروني كامل تحتاج الباقة رقم 4 أو أكبر.

المنطقة
المدة
عناوين IP المفوَّضة
1 +10% لكل عنوان IP بعد الأول
موصى بها لهذه المهمة
$0
  • البروكسيات في الباقة
  • الخيوط
  • عناوين IP المفوَّضة1
  • البروتوكولاتHTTP / SOCKS5
كل الباقات الـ13 في جدول الأسعار

ثلاث خطوات إلى أول لقطة أسعار

قسّم الكتالوج حسب المتجر

لكل متجر طابور طلباته وحصته من قائمة البروكسي. الأسواق الكبيرة تأخذ الحصة الأكبر.

تناوب وإعادة محاولة

خذ العنوان التالي لكل طلب، وأعد المحاولة مرتين من عنوان آخر، وسجّل السعر مع عنوان IP الذي جلبه.

حدّث القائمة كل 10 دقائق

تخرج العناوين من المجموعة حين تقدم. الرابط يعيد دائمًا المجموعة الحالية، فأعد قراءته بمؤقت.

أداة مراقبة أسعار جاهزة: طلب لكل منتج مع التناوب

املأ products.txt بروابط المنتجات واضبط COUNTRY. يُجلب كل منتج عبر البروكسي التالي، ويُستخرج السعر ويُكتب في prices.csv. عدّل PRICE_RE حسب ترميز المتجر. جرّبه أولًا على قائمة البروكسي المجانية.

CSV export link from your dashboard
buyers' country: prices are read as local shoppers see them
one product URL per line
regex, group 1 = the price
url;price;proxy;country is written here
القيم تأتي من النموذج؛ انسخ الملف الجاهز أو نزّله.
عرض كود السكربت
Python 3.8+ · prices.py
#!/usr/bin/env python3
"""Price monitor for Advanced.name proxies.

Fetches product pages through proxies from the buyer's country and pulls the
price out of each page. One request per product goes through the next proxy, so
a shop sees the same address rarely. Standard library only. python3 prices.py
"""

# ================================ CONFIG ====================================
CSV_URL = "https://get.advanced.name/YOUR_LIST_ID.csv"  # CSV export link from your dashboard
COUNTRY = "DE"          # buyers' country: prices are read as local shoppers see them
MIN_SPEED = 3
PRODUCTS_FILE = "products.txt"           # one product URL per line
PRICE_RE = r'"price"\s*:\s*"?([0-9][0-9.,]*)'   # regex, group 1 = the price
OUT_FILE = "prices.csv"                   # url;price;proxy;country is written here
THREADS = 40
TIMEOUT = 20
RETRIES = 3
# ============================================================================

import csv
import io
import itertools
import re
import sys
import threading
import urllib.request
from concurrent.futures import ThreadPoolExecutor, as_completed

COL_IP, COL_PORT, COL_COUNTRY, COL_SPEED = 0, 1, 2, 3
UA = "Mozilla/5.0 (compatible; price-monitor/1.0)"
PRICE = re.compile(PRICE_RE)


def load_proxies():
    raw = urllib.request.urlopen(CSV_URL, timeout=30).read().decode("utf-8", "replace")
    pool = []
    for row in csv.reader(io.StringIO(raw), delimiter=";"):
        if len(row) <= COL_SPEED or not row[COL_PORT].strip().isdigit():
            continue
        if COUNTRY and row[COL_COUNTRY].strip().upper() != COUNTRY.upper():
            continue
        if int(row[COL_SPEED] or 0) < MIN_SPEED:
            continue
        pool.append(row[COL_IP].strip() + ":" + row[COL_PORT].strip())
    return pool


def main():
    proxies = load_proxies()
    if not proxies:
        sys.exit("No proxies for COUNTRY=%r." % COUNTRY)
    with open(PRODUCTS_FILE, encoding="utf-8") as fh:
        products = [line.strip() for line in fh if line.strip() and not line.startswith("#")]
    print("proxies: %d (%s), products: %d" % (len(proxies), COUNTRY, len(products)))

    rotation = itertools.cycle(proxies)
    lock = threading.Lock()

    def grab(url):
        for _ in range(RETRIES):
            with lock:
                proxy = next(rotation)
            handler = urllib.request.ProxyHandler({"http": "http://" + proxy, "https": "http://" + proxy})
            req = urllib.request.Request(url, headers={
                "User-Agent": UA, "Accept-Language": COUNTRY.lower() + "," + COUNTRY.upper()})
            try:
                html = urllib.request.build_opener(handler).open(req, timeout=TIMEOUT).read().decode("utf-8", "replace")
            except Exception:
                continue
            match = PRICE.search(html)
            return (match.group(1) if match else "not found"), proxy
        return "unreachable", ""

    rows = []
    with ThreadPoolExecutor(max_workers=THREADS) as pool:
        futures = {pool.submit(grab, u): u for u in products}
        for fut in as_completed(futures):
            url = futures[fut]
            price, proxy = fut.result()
            rows.append((url, price, proxy, COUNTRY))
            print("%-9s %s" % (price, url[:60]))

    with open(OUT_FILE, "w", encoding="utf-8", newline="") as out:
        writer = csv.writer(out, delimiter=";")
        writer.writerow(["url", "price", "proxy", "country"])
        writer.writerows(rows)
    print("written %s (%d rows)" % (OUT_FILE, len(rows)))


if __name__ == "__main__":
    main()
الإعداد

إعداد أداة تتبع الأسعار

محللك الخاص

اجلب كل صفحة منتج عبر البروكسي التالي وخذ السعر من كتلة JSON-LD أو من عقدة السعر؛ السكربت أعلاه يستخدم تعبيرًا نمطيًا تضبطه لكل متجر. أرسل Accept-Language وملف تعريف ارتباط العملة الخاص بالمنطقة مع IP المحلي، وإلا فقد يحولك المتجر إلى سوق أخرى.

جدول حسب الضغط: المخزون كل ساعة، والأسعار مرتين في اليوم. احفظ رمز HTTP مع كل سعر، فتخبرك موجة من 403 من متجر واحد أن تبطئ هناك لا في كل مكان.

أدوات جاهزة وجداول بيانات

خدمات تتبع الأسعار وأدوات السحب بلا كود (Octoparse وWeb Scraper) تقبل قائمة بروكسي في الإعدادات: الصق ملف ip:port نفسه. حتى IMPORTXML في Google Sheets يمكن أن يعمل خلف وسيط بروكسي صغير للفحوص الخفيفة.

حافظ على المجموعة محدّثة بـأداة فحص البروكسي وجرّب التدفق على قائمة البروكسي المجانية قبل التوسع إلى الكتالوج كاملًا.

في الواقع العملي

ما تراه أداة التتبع

أربع قواعد لبيانات أسعار نظيفة

  1. أرسل Accept-Language وملفات تعريف الارتباط الخاصة بعملة المنطقة المستهدفة مع IP المنطقة؛ وإلا فقد يعيد المتجر توجيهك رغم ذلك.
  2. انتبه للأسعار المخزنة مؤقتًا أو المخصصة: عنوانان من الدولة نفسها يجب أن يعيدا الرقم نفسه.
  3. احفظ رمز HTTP مع كل سعر. موجة من 403 من متجر واحد تعني أن تبطئ هناك، لا في كل مكان.
  4. احتفظ بعدد قليل من الخيوط لإعادة فحص المنتجات التي قفز سعرها أكثر من 20%.

خطط الغيغابايت لهذه المهمة

هذه المهمة حسب الدولة

عرض كل الدول
FAQ

أسئلة حول هذه المهمة

كم مرة يمكنني فحص منتج واحد؟
كل ساعة بأمان على الباقة رقم 4: مع 30,000 عنوان تلتقي صفحة المنتج بالعنوان نفسه نحو مرة في الشهر.
هل سأرى الأسعار المحلية؟
نعم، إذا كان IP من منطقة المتجر وحمل طلبك ترويسات اللغة والعملة الخاصة بتلك المنطقة.
وماذا عن الأسواق الإلكترونية الثقيلة بـ JavaScript؟
الحركة لا تُحتسب، لذا يعمل متصفح headless عبر البروكسي جيدًا. أعطه مهلة من 15 إلى 20 ثانية وعنوان IP جديدًا لكل جلسة.
هل يمكنني التجربة على كتالوجي أولًا؟
ساعة تجربة على أي باقة مجانية وبكامل الخيوط. شغّل أداة التتبع ساعة وقارن نسب الأخطاء.
كيف أجمع الأسعار حسب المدينة؟
عبر Resi Prime: تحدد المدينة في سلسلة الاتصال، فيعيد المتجر السعر المحلي وتاريخ التوصيل. والباقات غير المحدودة وResi Core تعمل حتى مستوى الدولة.
خطط لهذه المهمة

ماذا تأخذ لمراقبة الأسعار

المرور على الكتالوج كل ساعة يعوّض تكلفته على باقة غير محدودة. أما المتاجر شديدة الحماية وأسعار المدن فتحتاج عناوين سكنية.

بروكسيات غير محدودة

الكتالوج كل ساعةالخيار الأنسب

الباقة #4 · المزيج العالمي · 30,000 IP · 2500 خيوط

مع الفحص كل ساعة، تلتقي صفحة المنتج بعنوان IP نفسه مرة في الشهر تقريبًا. والصفحات الكاملة لا ترفع الفاتورة.

$990 شهريًاأو $4.20 للساعة

Resi Core

متاجر صارمة

أكثر من 2 مليون IP · أكثر من 200 دولة · بلا حد للخيوط

عنوان IP منزلي من بلد المتجر مع كل طلب. للمواقع التي تعرض لعناوين القوائم رمز تحقق بدل السعر.

من $0.49 للغيغابايت1 غيغابايت بسعر $0.85

Resi Prime

أسعار المدن

أكثر من 30 مليون IP · 220 دولة · بلا حد للخيوط

المدينة والمنطقة في سلسلة الاتصال. يعرض المتجر السعر والتوصيل كما يراهما مشترٍ في تلك المدينة.

من $1.39 للغيغابايت1 غيغابايت بسعر $2.29

احصل على أسعار الليلة من كل متجر

اختر الباقة، وخذ الساعة المجانية، ومرّر أداة التتبع على الكتالوج كله.

الأسعار جرّب ساعة مجانًا