Entrar Cadastrar
Preços

Proxies para acompanhar preços sem que as lojas percebam

As lojas mostram preços diferentes para cada região e bloqueiam quem pergunta demais do mesmo endereço. Um monitor de preços na Advanced.name espalha as requisições por dezenas de milhares de endereços IPv4 e consulta cada loja a partir da região dos seus compradores.

  • 30.000 IPs no pacote nº 4
  • preços da região do comprador
  • lista renovada a cada 10 minutos
Corredor de armazém com um tablet mostrando um gráfico de preços
Preços

O que um monitor de preços precisa e o que o pacote entrega

Um monitor visita as mesmas páginas toda hora. É esse padrão que leva bloqueio, e o pool tem que escondê-lo.

O que a tarefa exigeO que o pacote entrega

Um IP diferente a cada visita ao mesmo produto

O pacote nº 4 tem 30.000 endereços: a página do produto vê o mesmo IP uma vez por mês

Preços como os compradores locais veem

Pools Europa, CEI e China; World MIX para os EUA e outros mercados

Milhares de SKUs checados a cada hora

Até 2.500 threads no pacote nº 4 e 5.000 no nº 6

Páginas com imagens e scripts, não só JSON

Tráfego sem limite: baixe páginas inteiras com a frequência que a agenda pedir

Proxies ilimitados

Escolha o pacote pelo tamanho do catálogo

Dez mil SKUs por hora cabem no pacote nº 3; acompanhar um marketplace inteiro pede o nº 4 ou maior.

Região
Prazo
IPs autorizados
1 +10% por IP além do primeiro
Recomendado para esta tarefa
$0
  • Proxies no pacote
  • Threads
  • IPs autorizados1
  • ProtocolosHTTP / SOCKS5
Os 13 pacotes na tabela de preços

Três passos até a primeira foto de preços

Divida o catálogo por loja

Cada loja ganha sua própria fila de requisições e sua parte da lista de proxies. Os grandes marketplaces ficam com a maior parte.

Rotação e novas tentativas

Pegue o próximo endereço a cada requisição, tente de novo duas vezes por outro e registre o preço junto com o IP que o trouxe.

Atualize a lista a cada 10 minutos

Os endereços saem do pool quando envelhecem. O link sempre devolve o conjunto atual, então releia com um timer.

Monitor de preços pronto: uma requisição por produto, com rotação

Preencha products.txt com URLs de produtos e defina COUNTRY. Cada produto é baixado pelo próximo proxy, o preço é extraído e gravado em prices.csv. Ajuste PRICE_RE à marcação da loja. Teste antes na lista de proxies grátis.

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
Os valores vêm do formulário; copie ou baixe o arquivo pronto.
Mostrar o código do 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()
Configuração

Como montar um monitor de preços

Seu próprio parser

Baixe cada página de produto pelo próximo proxy e tire o preço do bloco JSON-LD ou do nó de preço; o script acima usa uma regex que você ajusta para cada loja. Envie o Accept-Language e o cookie de moeda da região com o IP local, senão a loja pode jogar você para outro mercado.

Agende pela pressão: estoque toda hora, preços duas vezes por dia. Guarde o status HTTP com cada preço, assim uma rajada de 403 numa loja avisa para desacelerar ali, e não em todas.

Ferramentas prontas e planilhas

Serviços de acompanhamento de preços e scrapers sem código (Octoparse, Web Scraper) aceitam uma lista de proxies nas configurações: cole o mesmo arquivo ip:port. Até o IMPORTXML do Google Sheets pode rodar atrás de um pequeno relay de proxies para checagens leves.

Mantenha o pool atualizado com o verificador de proxies e teste o fluxo na lista de proxies grátis antes de escalar para o catálogo inteiro.

Na prática

O que o monitor enxerga

Quatro regras para dados de preço limpos

  1. Envie o Accept-Language e os cookies de moeda da região junto com o IP regional; senão a loja ainda pode redirecionar você.
  2. Fique de olho em preços em cache ou personalizados: dois IPs do mesmo país devem devolver o mesmo número.
  3. Guarde o status HTTP com cada preço. Uma rajada de 403 numa loja significa ir mais devagar lá, não em todas.
  4. Reserve algumas threads para rechecar itens cujo preço saltou mais de 20%.

Planos por GB para esta tarefa

Esta tarefa por país

Ver todos os países
FAQ

Perguntas sobre esta tarefa

Com que frequência posso checar um produto?
De hora em hora com segurança no pacote nº 4: com 30.000 endereços, a página do produto encontra o mesmo IP mais ou menos uma vez por mês.
Vou ver os preços locais?
Sim, se o IP for da região da loja e a requisição levar os cabeçalhos de idioma e moeda dessa região.
E os marketplaces cheios de JavaScript?
O tráfego não é contado, então um navegador headless pelo proxy funciona bem. Dê a ele timeout de 15 a 20 segundos e um IP novo por sessão.
Posso testar antes no meu catálogo?
Uma hora de teste em qualquer pacote é grátis, com todas as threads. Rode seu monitor por uma hora e compare as taxas de erro.
Como coleto preços por cidade?
Pelo Resi Prime: você define a cidade na string de conexão, e a loja devolve o preço local e a data de entrega. Os pacotes ilimitados e o Resi Core vão até o nível do país.
Planos para esta tarefa

O que escolher para monitorar preços

Percorrer o catálogo de hora em hora compensa num pacote ilimitado. Lojas bem protegidas e preços por cidade pedem endereços residenciais.

Proxies ilimitados

Catálogo de hora em horaMelhor escolha

Pacote #4 · World MIX · 30.000 IP · 2500 threads

Com checagens de hora em hora, uma página de produto vê o mesmo IP mais ou menos uma vez por mês. Páginas completas não aumentam a conta.

$990 por mêsou $4.20 por hora

Resi Core

Lojas rigorosas

2M+ IPs · mais de 200 países · sem limite de threads

Um IP residencial do país da loja a cada requisição. Para sites que mostram captcha em vez do preço aos endereços de listas.

a partir de $0.49 por GB1 GB por $0.85

Resi Prime

Preços por cidade

30M+ IPs · 220 países · sem limite de threads

Cidade e região na string de conexão. A loja mostra o preço e a entrega que um comprador daquela cidade vê.

a partir de $1.39 por GB1 GB por $2.29

Pegue hoje à noite os preços de todas as lojas

Escolha o pacote, use a hora grátis e passe o monitor pelo catálogo inteiro.

Preços Testar uma hora grátis