Giriş Kayıt ol
Fiyat izleme

Mağazaların fark etmediği fiyat izleme için proxy'ler

Mağazalar farklı bölgelere farklı fiyat gösterir ve tek adresten çok sık soranı engeller. Advanced.name üzerindeki bir fiyat izleyici isteklerini on binlerce IPv4 adresine dağıtır ve her mağazaya alıcılarının bölgesinden sorar.

  • 4 numaralı pakette 30.000 IP
  • alıcının bölgesinden fiyatlar
  • liste 10 dakikada bir yenilenir
Fiyat grafiği gösteren tabletle depo koridoru
Fiyat izleme

Fiyat izleyicinin ihtiyacı ve paketin verdiği

İzleyici her saat aynı sayfaları ziyaret eder. Engellenen tam da bu kalıptır ve havuzun onu gizlemesi gerekir.

Görevin ihtiyacıPaketin sundukları

Aynı ürüne her ziyarette farklı bir IP

4 numaralı pakette 30.000 adres var: bir ürün sayfası aynı IP'yi ayda bir görür

Yerel alıcıların gördüğü fiyatlar

Avrupa, BDT ve Çin havuzları; ABD ve diğer pazarlar için World MIX

Her saat binlerce ürün kodu kontrolü

4 numaralı pakette 2.500'e, 6 numaralı pakette 5.000'e kadar thread

Yalnızca JSON değil, görsel ve betikli sayfalar

Trafik sınırı yok: tam sayfaları program ne kadar sık istiyorsa o kadar çekin

Sınırsız proxy

Katalog boyutunuza göre paketi seçin

Saatte on bin ürün kodu 3 numaralı pakete sığar; bütün bir pazar yerini izlemek için 4 numara ya da daha büyüğü gerekir.

Bölge
Süre
Yetkili IP'ler
1 İlkinden sonraki her IP için +%10
Bu görev için önerilen
$0
  • Paketteki proxy
  • Thread
  • Yetkili IP'ler1
  • ProtokollerHTTP / SOCKS5
Fiyat tablosundaki 13 paketin hepsi

İlk fiyat anlık görüntüsüne üç adım

Kataloğu mağazalara bölün

Her mağaza kendi istek kuyruğunu ve proxy listesinden kendi payını alır. Büyük pazar yerleri en büyük payı alır.

Rotasyon ve tekrar deneme

Her istek için sıradaki adresi alın, başka bir adresle iki kez tekrar deneyin, fiyatı onu getiren IP ile birlikte kaydedin.

Listeyi 10 dakikada bir yenileyin

Adresler eskidikçe havuzdan çıkar. Bağlantı her zaman güncel kümeyi döndürür, bu yüzden onu bir zamanlayıcıyla yeniden okuyun.

Hazır fiyat izleyici: ürün başına bir istek, rotasyonlu

products.txt dosyasını ürün URL'leriyle doldurun ve COUNTRY değerini girin. Her ürün sıradaki proxy ile çekilir, fiyat ayıklanır ve prices.csv dosyasına yazılır. PRICE_RE'yi mağazanın işaretlemesine göre ayarlayın. Önce ücretsiz proxy listesinde deneyin.

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
Değerler formdan gelir; hazır dosyayı kopyalayın veya indirin.
Betik kodunu göster
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()
Kurulum

Fiyat izleyiciyi kurmak

Kendi ayrıştırıcınız

Her ürün sayfasını sıradaki proxy ile çekin ve fiyatı JSON-LD bloğundan ya da fiyat düğümünden alın; yukarıdaki betik her mağazaya göre ayarladığınız bir regex kullanır. Yerel IP ile birlikte bölgenin Accept-Language başlığını ve para birimi çerezini gönderin, yoksa mağaza sizi başka bir pazara yönlendirebilir.

Zamanlamayı baskıya göre yapın: stok saatte bir, fiyatlar günde iki kez. Her fiyatla HTTP durum kodunu saklayın, böylece bir mağazadan gelen 403 dalgası her yerde değil orada yavaşlamanız gerektiğini söyler.

Hazır araçlar ve tablolar

Fiyat takip servisleri ve kodsuz scraper'lar (Octoparse, Web Scraper) ayarlarda bir proxy listesi kabul eder: aynı ip:port dosyasını yapıştırın. Google Sheets'teki IMPORTXML bile hafif kontroller için küçük bir proxy aktarıcısının arkasında çalışabilir.

Havuzu proxy denetleyicisi ile taze tutun ve tam kataloğa geçmeden önce akışı ücretsiz proxy listesinde deneyin.

Uygulamada

İzleyicinin gördükleri

Temiz fiyat verisi için dört kural

  1. Bölgesel IP ile birlikte hedef bölgenin Accept-Language başlığını ve para birimi çerezlerini gönderin; yoksa mağaza sizi yine de yönlendirebilir.
  2. Önbellekteki ya da kişiselleştirilmiş fiyatlara dikkat edin: aynı ülkeden iki IP aynı rakamı döndürmeli.
  3. Her fiyatla birlikte HTTP durum kodunu saklayın. Bir mağazadan gelen 403 dalgası orada yavaşlamak demektir, her yerde değil.
  4. Fiyatı %20'den fazla sıçrayan ürünlerin yeniden kontrolü için birkaç thread'i yedekte tutun.

Bu iş için GB tarifeleri

Ülkeye göre bu iş

Tüm ülkeleri göster
FAQ

Bu görevle ilgili sorular

Bir ürünü ne sıklıkla kontrol edebilirim?
4 numaralı pakette saatte bir güvenlidir: 30.000 adresle bir ürün sayfası aynı IP'yle ayda bir karşılaşır.
Yerel fiyatları görecek miyim?
Evet, IP mağazanın bölgesindense ve isteğiniz o bölgenin dil ve para birimi başlıklarını taşıyorsa.
Yoğun JavaScript kullanan pazar yerleri ne olacak?
Trafik sayılmadığı için proxy üzerinden headless tarayıcı sorunsuz çalışır. Ona 15 ile 20 saniyelik zaman aşımı ve her oturum için taze bir IP verin.
Önce kendi kataloğumda deneyebilir miyim?
Her pakette bir test saati ücretsiz ve tam thread ile. İzleyicinizi bir saat çalıştırın ve hata oranlarını karşılaştırın.
Fiyatları şehre göre nasıl toplarım?
Resi Prime ile: şehri bağlantı dizesine yazarsınız, mağaza yerel fiyatı ve teslimat tarihini döndürür. Sınırsız paketler ve Resi Core ülke düzeyine kadar çalışır.
Bu iş için tarifeler

Fiyat izleme için ne alınmalı

Kataloğu saatlik taramak sınırsız pakette kârlıdır. Sıkı korunan mağazalar ve şehir fiyatları konut adresleri ister.

Sınırsız proxy

Her saat katalogEn uygun seçim

Paket #4 · World MIX · 30.000 IP · 2500 thread

Saatlik kontrollerde bir ürün kartı aynı IP'yi ayda yaklaşık bir kez görür. Tam sayfalar faturayı artırmaz.

$990 aylıkveya saatlik $4.20

Resi Core

Katı mağazalar

2M+ IP · 200+ ülke · thread sınırı yok

Her istekte mağazanın ülkesinden bir ev IP'si. Liste adreslerine fiyat yerine captcha gösteren siteler için.

başlangıç $0.49 GB başına1 GB: $0.85

Resi Prime

Şehir fiyatları

30M+ IP · 220 ülke · thread sınırı yok

Bağlantı dizesinde şehir ve bölge. Mağaza, o şehirdeki bir alıcının gördüğü fiyatı ve teslimatı gösterir.

başlangıç $1.39 GB başına1 GB: $2.29

Bu akşamın fiyatlarını her mağazadan alın

Paketi seçin, ücretsiz saati alın, izleyiciyi tüm katalogda çalıştırın.

Fiyatlar Bir saat ücretsiz deneyin