כניסה הרשמה
מעקב מחירים

פרוקסי למעקב מחירים שהחנויות המקוונות לא שמות לב אליו

חנויות מציגות מחירים שונים לאזורים שונים וחוסמות את מי ששואל יותר מדי מאותה כתובת. מעקב מחירים ב-Advanced.name מפזר את הבקשות על עשרות אלפי כתובות IPv4 ושואל כל חנות מהאזור של הקונים שלה.

  • ‏30,000 IP בחבילה מס' 4
  • מחירים מהאזור של הקונה
  • רענון רשימה כל 10 דקות
מעבר במחסן עם טאבלט שמציג גרף מחירים
מעקב מחירים

מה מעקב מחירים צריך ומה החבילה נותנת

מעקב מבקר באותם עמודים כל שעה. בדיוק הדפוס הזה נחסם, והמאגר צריך להסתיר אותו.

מה המשימה צריכהמה החבילה נותנת

‏IP אחר בכל ביקור באותו מוצר

בחבילה מס' 4 יש 30,000 כתובות: דף מוצר רואה את אותו IP פעם בחודש

מחירים כפי שקונים מקומיים רואים אותם

מאגרי אירופה, חבר העמים וסין; מיקס עולמי לארה"ב ולשווקים אחרים

אלפי מק"טים נבדקים כל שעה

עד 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 או מצומת המחיר; הסקריפט למעלה משתמש ב-regex שאתם מכוונים לכל חנות. שלחו את ה-Accept-Language ועוגיית המטבע של האזור יחד עם ה-IP המקומי, אחרת החנות עלולה להעביר אתכם לשוק אחר.

תזמנו לפי לחץ: מלאי כל שעה, מחירים פעמיים ביום. שמרו את קוד ה-HTTP עם כל מחיר, וכך גל של 403 מחנות אחת יגיד לכם להאט שם ולא בכל מקום.

כלים מוכנים וגיליונות

שירותי מעקב מחירים וסורקים בלי קוד (Octoparse, ‏Web Scraper) מקבלים רשימת פרוקסי בהגדרות: הדביקו את אותו קובץ ip:port. אפילו IMPORTXML של Google Sheets יכול לרוץ מאחורי ממסר פרוקסי קטן לבדיקות קלות.

שמרו על מאגר טרי עם בודק הפרוקסי ובדקו את התהליך על רשימת הפרוקסי החינמית לפני שעוברים לקטלוג המלא.

בפועל

מה המעקב רואה

ארבעה כללים לנתוני מחיר נקיים

  1. שלחו את ה-Accept-Language ואת עוגיות המטבע של אזור היעד יחד עם ה-IP האזורי; אחרת החנות עדיין עלולה להפנות אתכם.
  2. שימו לב למחירים מהמטמון או מותאמים אישית: שני IP מאותה מדינה צריכים להחזיר את אותו מספר.
  3. שמרו את קוד ה-HTTP עם כל מחיר. גל של 403 מחנות אחת אומר להאט שם, לא בכל מקום.
  4. השאירו כמה חיבורים בעתודה לבדיקה חוזרת של מוצרים שהמחיר שלהם קפץ ביותר מ-20%.

תוכניות לפי GB למשימה הזו

המשימה הזו לפי מדינה

הצגת כל המדינות
FAQ

שאלות על המשימה הזו

כל כמה זמן אפשר לבדוק מוצר אחד?
כל שעה בבטחה בחבילה מס' 4: עם 30,000 כתובות, דף מוצר פוגש את אותו IP בערך פעם בחודש.
אראה מחירים מקומיים?
כן, אם ה-IP מהאזור של החנות והבקשה שלכם נושאת את כותרות השפה והמטבע של אותו אזור.
ומה עם מרקטפלייסים כבדי JavaScript?
התעבורה לא נספרת, אז דפדפן headless דרך הפרוקסי עובד מצוין. תנו לו timeout של 15 עד 20 שניות ו-IP טרי לכל סשן.
אפשר לנסות קודם על הקטלוג שלי?
שעת ניסיון אחת בכל חבילה היא חינם, עם כל החיבורים. הריצו את המעקב שעה והשוו את שיעורי השגיאות.
איך אוספים מחירים לפי עיר?
דרך Resi Prime: קובעים את העיר במחרוזת החיבור, והחנות מחזירה את המחיר המקומי ואת תאריך המשלוח. חבילות ללא הגבלה ו-Resi Core עובדים עד רמת המדינה.
תוכניות למשימה הזו

מה לקחת למעקב מחירים

מעבר על הקטלוג כל שעה משתלם בחבילה ללא הגבלה. חנויות מוגנות במיוחד ומחירים לפי עיר דורשים כתובות ביתיות.

פרוקסי ללא הגבלה

הקטלוג כל שעהההתאמה הטובה ביותר

חבילה #4 · מיקס עולמי · 30,000 IP · 2500 חיבורים

בבדיקות כל שעה, דף מוצר פוגש את אותו IP בערך פעם בחודש. עמודים מלאים לא מעלים את החשבון.

$990 לחודשאו $4.20 לשעה

Resi Core

חנויות קפדניות

2M+ כתובות IP · 200+ מדינות · בלי מגבלת חיבורים

IP ביתי ממדינת החנות בכל בקשה. לאתרים שמראים לכתובות מרשימות קפצ'ה במקום מחיר.

החל מ- $0.49 ל-GB1 GB ב-$0.85

Resi Prime

מחירים לפי עיר

30M+ כתובות IP · 220 מדינות · בלי מגבלת חיבורים

עיר ואזור במחרוזת החיבור. החנות מציגה את המחיר ואת המשלוח שקונה בעיר הזו רואה.

החל מ- $1.39 ל-GB1 GB ב-$2.29

קבלו הערב את המחירים מכל חנות

בחרו חבילה, קחו את השעה החינמית והריצו את המעקב על כל הקטלוג.

מחירים שעה חינם לניסיון