Entrar Registrarse
Precios

Proxies para vigilar precios sin que las tiendas lo noten

Las tiendas enseñan precios distintos a cada región y bloquean a quien pregunta demasiado desde una misma dirección. Un price tracker en Advanced.name reparte sus peticiones entre decenas de miles de direcciones IPv4 y consulta cada tienda desde la región de sus compradores.

  • 30.000 IP en el paquete n.º 4
  • precios de la región del comprador
  • lista renovada cada 10 minutos
Pasillo de almacén con una tableta que muestra una gráfica de precios
Precios

Qué necesita un price tracker y qué da el paquete

Un tracker visita las mismas páginas cada hora. Ese patrón es justo lo que se bloquea, y el pool tiene que ocultarlo.

Qué pide la tareaQué da el paquete

Una IP distinta en cada visita al mismo producto

El paquete n.º 4 tiene 30.000 direcciones: una ficha de producto ve la misma IP una vez al mes

Precios como los ven los compradores locales

Pools Europa, CEI y China; World MIX para EE. UU. y otros mercados

Miles de SKU revisados cada hora

Hasta 2.500 hilos en el paquete n.º 4 y 5.000 en el n.º 6

Páginas con imágenes y scripts, no solo JSON

Tráfico sin límite: descarga páginas completas tan a menudo como marque el calendario

Proxies ilimitados

Elige el paquete según el tamaño del catálogo

Diez mil SKU por hora caben en el paquete n.º 3; vigilar un marketplace entero pide el n.º 4 o uno mayor.

Región
Plazo
IP autorizadas
1 +10% por cada IP tras la primera
Recomendado para esta tarea
$0
  • Proxies en el paquete
  • Hilos
  • IP autorizadas1
  • ProtocolosHTTP / SOCKS5
Los 13 paquetes en la tabla de precios

Tres pasos hasta la primera foto de precios

Divide el catálogo por tienda

Cada tienda tiene su propia cola de peticiones y su parte de la lista de proxies. Los grandes marketplaces se llevan la parte mayor.

Rota y reintenta

Toma la siguiente dirección en cada petición, reintenta dos veces con otra y guarda el precio junto con la IP que lo trajo.

Renueva la lista cada 10 minutos

Las direcciones salen del pool cuando envejecen. El enlace siempre devuelve el conjunto actual, así que reléelo con un temporizador.

Monitor de precios listo: una petición por producto, con rotación

Rellena products.txt con URL de productos y fija COUNTRY. Cada producto se descarga por el siguiente proxy, se extrae el precio y se guarda en prices.csv. Ajusta PRICE_RE al marcado de la tienda. Pruébalo antes con la lista de proxies gratis.

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
Los valores salen del formulario; copia o descarga el archivo listo.
Mostrar el código del script
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()
Configuración

Cómo montar un price tracker

Tu propio parser

Descarga cada página de producto por el siguiente proxy y saca el precio del bloque JSON-LD o del nodo de precio; el script de arriba usa una regex que ajustas para cada tienda. Envía el Accept-Language y la cookie de moneda de la región con la IP local, o la tienda puede mandarte a otro mercado.

Programa por presión: stock cada hora, precios dos veces al día. Guarda el código HTTP con cada precio, así una racha de 403 en una tienda te dice que frenes ahí y no en todas.

Herramientas listas y hojas de cálculo

Los servicios de seguimiento de precios y los scrapers sin código (Octoparse, Web Scraper) aceptan una lista de proxies en los ajustes: pega el mismo archivo ip:port. Hasta IMPORTXML de Google Sheets puede ir detrás de un pequeño relay de proxies para consultas ligeras.

Mantén el pool fresco con el comprobador de proxies y prueba el flujo con la lista de proxies gratis antes de escalar al catálogo completo.

En la práctica

Lo que ve el tracker

Cuatro reglas para datos de precios limpios

  1. Envía Accept-Language y las cookies de moneda de la región junto con la IP regional; si no, la tienda puede redirigirte igualmente.
  2. Vigila precios en caché o personalizados: dos IP del mismo país deberían devolver la misma cifra.
  3. Guarda el código HTTP con cada precio. Una racha de 403 en una tienda significa frenar ahí, no en todas.
  4. Reserva unos pocos hilos para volver a revisar los productos cuyo precio salte más de un 20 %.

Planes por GB para esta tarea

Esta tarea por país

Ver todos los países
FAQ

Preguntas sobre esta tarea

¿Cada cuánto puedo revisar un producto?
Cada hora sin riesgo en el paquete n.º 4: con 30.000 direcciones, una ficha de producto se cruza con la misma IP más o menos una vez al mes.
¿Veré los precios locales?
Sí, si la IP es de la región de la tienda y tu petición lleva las cabeceras de idioma y moneda de esa región.
¿Y los marketplaces cargados de JavaScript?
El tráfico no se cuenta, así que un navegador headless a través del proxy va bien. Dale un timeout de 15 a 20 segundos y una IP nueva por sesión.
¿Puedo probar primero con mi catálogo?
Una hora de prueba en cualquier paquete es gratis y con todos los hilos. Pon tu tracker a funcionar una hora y compara las tasas de error.
¿Cómo recojo precios por ciudad?
Con Resi Prime: fijas la ciudad en la cadena de conexión, y la tienda devuelve el precio local y la fecha de entrega. Los paquetes ilimitados y Resi Core llegan hasta el nivel de país.
Planes para esta tarea

Qué tomar para vigilar precios

Recorrer el catálogo cada hora sale rentable con un paquete ilimitado. Las tiendas muy protegidas y los precios por ciudad necesitan direcciones residenciales.

Proxies ilimitados

Catálogo cada horaLa mejor opción

Paquete #4 · World MIX · 30 000 IP · 2500 hilos

Con comprobaciones cada hora, una ficha de producto ve la misma IP más o menos una vez al mes. Las páginas completas no encarecen la factura.

$990 al meso $4.20 por hora

Resi Core

Tiendas estrictas

2M+ IP · más de 200 países · sin límite de hilos

Una IP doméstica del país de la tienda en cada petición. Para sitios que muestran un captcha en lugar del precio a las direcciones de las listas.

desde $0.49 por GB1 GB por $0.85

Resi Prime

Precios por ciudad

30M+ IP · 220 países · sin límite de hilos

Ciudad y región en la cadena de conexión. La tienda muestra el precio y la entrega que ve un comprador de esa ciudad.

desde $1.39 por GB1 GB por $2.29

Consigue esta noche los precios de cada tienda

Elige el paquete, usa la hora gratis y pasa el tracker por todo el catálogo.

Precios Prueba una hora gratis