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.
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.
Un tracker visita las mismas páginas cada hora. Ese patrón es justo lo que se bloquea, y el pool tiene que ocultarlo.
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
Diez mil SKU por hora caben en el paquete n.º 3; vigilar un marketplace entero pide el n.º 4 o uno mayor.
Cada tienda tiene su propia cola de peticiones y su parte de la lista de proxies. Los grandes marketplaces se llevan la parte mayor.
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.
Las direcciones salen del pool cuando envejecen. El enlace siempre devuelve el conjunto actual, así que reléelo con un temporizador.
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.
#!/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()
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.
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.



Recorrer el catálogo cada hora sale rentable con un paquete ilimitado. Las tiendas muy protegidas y los precios por ciudad necesitan direcciones residenciales.
Catálogo cada horaLa mejor opción
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
Tiendas estrictas
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
Precios por ciudad
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
Elige el paquete, usa la hora gratis y pasa el tracker por todo el catálogo.