Découpez le catalogue par boutique
Chaque boutique a sa propre file de requêtes et sa part de la liste de proxies. Les grosses marketplaces reçoivent la plus grande part.
Les boutiques affichent des prix différents selon la région et bloquent quiconque interroge trop souvent depuis une même adresse. Un outil de veille sur Advanced.name répartit ses requêtes sur des dizaines de milliers d'adresses IPv4 et interroge chaque boutique depuis la région de ses acheteurs.
Une veille visite les mêmes pages toutes les heures. C'est ce schéma qui se fait bloquer, et le pool doit le masquer.
Une IP différente à chaque visite du même produit
Le pack n° 4 contient 30 000 adresses : une fiche produit voit la même IP une fois par mois
Les prix tels que les voient les acheteurs locaux
Pools Europe, CEI et Chine ; World MIX pour les États-Unis et les autres marchés
Des milliers de références vérifiées chaque heure
Jusqu'à 2 500 threads sur le pack n° 4, 5 000 sur le pack n° 6
Des pages avec images et scripts, pas seulement du JSON
Pas de limite de trafic : récupérez des pages complètes aussi souvent que le planning le prévoit
Dix mille références par heure tiennent dans le pack n° 3 ; surveiller toute une marketplace demande le n° 4 ou plus.
Chaque boutique a sa propre file de requêtes et sa part de la liste de proxies. Les grosses marketplaces reçoivent la plus grande part.
Prenez l'adresse suivante à chaque requête, relancez deux fois sur une autre et enregistrez le prix avec l'IP qui l'a récupéré.
Les adresses quittent le pool en vieillissant. Le lien renvoie toujours l'ensemble actuel, relisez-le donc avec un minuteur.
Remplissez products.txt avec des URL de produits et réglez COUNTRY. Chaque produit est récupéré via le proxy suivant, le prix est extrait puis écrit dans prices.csv. Adaptez PRICE_RE au balisage de la boutique. Testez d'abord sur la liste de proxies gratuits.
#!/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()
Récupérez chaque page produit via le proxy suivant et tirez le prix du bloc JSON-LD ou du nœud de prix ; le script ci-dessus utilise une regex que vous ajustez pour chaque boutique. Envoyez l'Accept-Language et le cookie de devise de la région avec l'IP locale, sinon la boutique peut vous basculer sur un autre marché.
Planifiez selon la pression : stock toutes les heures, prix deux fois par jour. Stockez le code HTTP avec chaque prix, ainsi une rafale de 403 sur une boutique vous dit de ralentir là-bas, pas partout.
Les services de suivi de prix et les scrapers sans code (Octoparse, Web Scraper) prennent une liste de proxys dans leurs paramètres : collez-y le même fichier ip:port. Même IMPORTXML de Google Sheets peut passer par un petit relais proxy pour des vérifications légères.
Gardez le pool frais avec le vérificateur de proxies et testez le circuit sur la liste de proxies gratuits avant de passer au catalogue complet.



Un passage horaire sur le catalogue se rentabilise sur un pack illimité. Les boutiques très protégées et les prix par ville demandent des adresses résidentielles.
Le catalogue chaque heureLe meilleur choix
Avec des vérifications horaires, une fiche produit revoit la même IP environ une fois par mois. Les pages complètes ne font pas monter la facture.
$990 par moisou $4.20 de l'heure
Boutiques strictes
Une IP résidentielle du pays de la boutique à chaque requête. Pour les sites qui montrent un captcha au lieu du prix aux adresses des listes.
dès $0.49 le Go1 Go pour $0.85
Prix par ville
Ville et région dans la chaîne de connexion. La boutique affiche le prix et la livraison que voit un acheteur de cette ville.
dès $1.39 le Go1 Go pour $2.29
Choisissez le pack, prenez l'heure gratuite et passez la veille sur tout le catalogue.