O parsing de preços em escala exige uma abordagem híbrida que equilibre velocidade bruta com a capacidade de contornar mecanismos anti-bot sofisticados. Ao integrar o framework de crawling assíncrono do Scrapy com a automação de navegador do Selenium e a rede de proxies residenciais da GProxy.net, os desenvolvedores conseguem extrair de forma confiável dados de preços em tempo real até dos ambientes de e-commerce mais protegidos. Essa combinação garante que você lide com renderização pesada em JavaScript mantendo um perfil de detecção baixo por meio de IPs residenciais rotativos.
A arquitetura de um parser de preços de alta performance
Construir um parser de preços deixou de ser uma simples questão de enviar uma requisição GET e analisar o HTML. Plataformas de e-commerce modernas como Amazon, Zalando e Walmart usam renderização dinâmica de preços, na qual o custo real do item é injetado no DOM via JavaScript depois do carregamento inicial da página. Isso exige uma abordagem arquitetural em duas camadas.
O Scrapy é a espinha dorsal da operação. Sua natureza assíncrona permite lidar com milhares de requisições simultaneamente, o que o torna ideal para percorrer páginas de categoria e descobrir URLs de produtos. Porém, quando o Scrapy encontra uma página protegida por PerimeterX ou Akamai, ou uma página que exige execução pesada de JS para exibir os preços da "Buy Box", ele repassa a tarefa ao Selenium. O Selenium opera uma instância real de navegador (Chrome ou Firefox), executando scripts e tratando cookies exatamente como faria um usuário humano.
O elo que falta nessa arquitetura é a identidade de rede. Sites de e-commerce monitoram a reputação do IP e os padrões de requisição. Se detectarem um alto volume de requisições vindas de uma faixa de IP de datacenter, servirão imediatamente CAPTCHAs ou dados de preço incorretos (ghosting). A GProxy.net fornece a infraestrutura residencial necessária para mascarar essas requisições automatizadas. Usando os proxies residenciais rotativos da GProxy, cada requisição parece se originar de uma conexão doméstica única, tornando praticamente impossível para os servidores de destino distinguir o scraper de um comprador legítimo.

Integrando os proxies da GProxy.net com o Scrapy
Para usar a GProxy.net com o Scrapy, você precisa implementar um middleware customizado ou usar o HttpProxyMiddleware nativo. Como o parsing de preços envolve requisições de alta frequência, a melhor prática é usar os nós backconnect da GProxy, que fazem a rotação automaticamente do lado do servidor.
Configurando as settings do Scrapy
No seu settings.py, você precisa habilitar o middleware de proxy e informar suas credenciais GProxy. Usar proxies residenciais garante que suas requisições sejam roteadas por dispositivos de usuários reais, reduzindo bastante a chance de bloqueio durante crawls de larga escala.
# settings.py
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
# Configuração do proxy residencial GProxy
# Formato: http://username:[email protected]:port
PROXY_URL = "http://user-12345:[email protected]:8000"
Implementando a lógica de proxy nos spiders
Você pode passar a meta-tag de proxy diretamente no seu scrapy.Request. Isso é especialmente útil quando você quer alternar entre diferentes zonas da GProxy (por exemplo, trocar proxies dos EUA por proxies do Reino Unido para comparação regional de preços).
import scrapy
class PriceSpider(scrapy.Spider):
name = 'gproxy_spider'
def start_requests(self):
urls = ['https://example-ecommerce.com/product-1']
for url in urls:
yield scrapy.Request(
url=url,
callback=self.parse,
meta={'proxy': 'http://user-12345:[email protected]:8000'}
)
def parse(self, response):
price = response.css('.price-tag::text').get()
yield {'price': price, 'url': response.url}
Lidando com conteúdo dinâmico usando Selenium e GProxy
Quando um site usa "Shadow DOM" ou gerenciamento de estado complexo em React/Vue para exibir preços, o Selector do Scrapy retornará resultados vazios. É aí que o Selenium se torna necessário. Para manter o anonimato, o Selenium também precisa ser configurado para usar os nós da GProxy.net.
Usar o selenium-wire é a abordagem recomendada para integração de proxy, porque ele permite manipular headers com facilidade e suporta proxies com autenticação, algo com que os drivers padrão do Selenium costumam ter dificuldade sem o carregamento manual de extensões.
from seleniumwire import webdriver
from selenium.webdriver.chrome.options import Options
def get_dynamic_price(url):
proxy_options = {
'proxy': {
'http': 'http://user-12345:[email protected]:8000',
'https': 'https://user-12345:[email protected]:8000',
'no_proxy': 'localhost,127.0.0.1'
}
}
chrome_options = Options()
chrome_options.add_argument('--headless') # Executa sem interface para ganhar performance
driver = webdriver.Chrome(options=chrome_options, seleniumwire_options=proxy_options)
try:
driver.get(url)
# Aguarda o elemento de preço ser renderizado via JS
price_element = driver.find_element_by_css_selector('.dynamic-price')
return price_element.text
finally:
driver.quit()
Ao usar o Selenium, o gerenciamento de recursos é crítico. Uma única instância do Chrome pode consumir de 200MB a 500MB de RAM. Se você está fazendo parsing de 10.000 preços, não deve iniciar 10.000 instâncias. Em vez disso, use um pool de workers ou integre o Selenium a um middleware do Scrapy (como o scrapy-selenium) para reaproveitar instâncias do driver entre várias requisições.

Comparando Scrapy e Selenium para extração de preços
A escolha da ferramenta certa depende da complexidade do site alvo. A tabela a seguir compara os dois métodos quando usados em conjunto com os proxies residenciais da GProxy.net.
| Característica | Scrapy + GProxy | Selenium + GProxy |
|---|---|---|
| Velocidade | Alta (assíncrono) | Baixa (overhead do navegador) |
| Uso de recursos | Baixo (eficiente em memória) | Alto (intensivo em CPU/RAM) |
| Renderização de JS | Não (requer Splash/Playwright) | Suporte nativo |
| Bypass de anti-bot | Médio (depende de headers/IP) | Alto (imita usuário real) |
| Melhor caso de uso | Scraping de catálogo/categoria | Checkout/lógica de preço dinâmico |
Estratégias avançadas de proxy: geo-targeting e sessões sticky
O parsing de preços muitas vezes exige ver o que um usuário de uma localização específica vê. Por exemplo, a Amazon exibe custos de frete e preços localizados diferentes conforme o endereço IP do visitante. A GProxy.net permite geo-targeting granular, o que é essencial para uma inteligência competitiva precisa.
Implementando sessões sticky
Em alguns cenários, você precisa manter o mesmo endereço IP em várias requisições — por exemplo, ao adicionar um item ao carrinho para ver o preço final com impostos. A GProxy suporta "sessões sticky" adicionando um ID de sessão ao seu nome de usuário. Isso garante que, durante aquela sessão (por exemplo, 10–30 minutos), todas as suas requisições passem pelo mesmo nó de saída residencial.
Exemplo de string de sessão sticky: user-12345-session-uniqueid789:[email protected]:8000. Alterando a parte uniqueid789, você dispara um novo IP sempre que sua lógica exigir.
Comparações regionais de preços
Se você monitora preços de uma marca global, precisa verificar a precificação em diferentes mercados. Com a GProxy, você pode especificar o código do país nas credenciais do proxy. Isso é vital para verificar a conformidade com o Preço Mínimo Anunciado (MAP) em diferentes jurisdições sem ser redirecionado para uma landing page global.
- Preços dos EUA: use
country-usna sua configuração GProxy. - Preços da UE: use
country-deoucountry-frpara ver preços em euros. - Ásia-Pacífico: mire
country-jpoucountry-sgpara marketplaces regionais como Rakuten ou Shopee.
Lidando com sistemas anti-bot e fingerprinting
Os proxies são a primeira linha de defesa, mas sites sofisticados também analisam fingerprints do navegador. Ao usar o Selenium, você precisa modificar a propriedade navigator.webdriver para undefined. Os sites checam essa flag para descobrir se o navegador está sendo controlado por software de automação.
Além disso, preste atenção ao User-Agent. Se você usar os IPs residenciais da GProxy mas enviar o User-Agent padrão do Scrapy (Scrapy/2.x (+https://scrapy.org)), será bloqueado na hora. Use sempre uma biblioteca como python-user-agents para gerar strings realistas e modernas que combinem com a versão do navegador que você está simulando no Selenium.
- Rotacione User-Agents: garanta que o User-Agent combine com o tipo de dispositivo percebido do proxy (mobile vs. desktop).
- Gerencie cookies: limpe os cookies entre sessões, a menos que esteja usando sessões sticky para um fluxo de múltiplas etapas.
- Aleatorize os delays: use
time.sleep(random.uniform(1, 5))no Selenium para imitar padrões humanos de leitura. - Monitore os códigos de resposta: se vir um 403 ou 427, rotacione imediatamente o ID de sessão da GProxy.
Principais conclusões
Fazer parsing de preços em escala com sucesso é um equilíbrio entre eficiência e discrição. Combinando Scrapy, Selenium e GProxy.net, você cria um pipeline robusto, capaz de superar os obstáculos mais comuns do web scraping.
- Abordagem híbrida: use Scrapy para descoberta de URLs em alto volume e Selenium apenas para páginas que exigem execução de JavaScript para revelar preços.
- Vantagem residencial: use sempre proxies residenciais da GProxy.net na fase final de extração de dados; IPs de datacenter são sinalizados com facilidade demais pelos filtros de CDN do e-commerce.
- Gestão de sessão: utilize sessões sticky quando precisar manter uma identidade consistente ao longo de um processo de descoberta de preço em várias etapas (por exemplo, adicionar ao carrinho, informar um CEP).
Dica prática 1: monitore sempre sua "taxa de sucesso" por zona de proxy. Se notar queda nas extrações bem-sucedidas em uma região específica, rotacione os IDs de sessão da GProxy ou troque de nós Datacenter para residenciais imediatamente.
Dica prática 2: implemente um "Retry Middleware" no Scrapy que procure especificamente por erros 429 (Too Many Requests) e 403 (Forbidden). Configure-o para repetir a requisição automaticamente usando um novo IP residencial da GProxy, garantindo que seu crawl não trave por bloqueios temporários.
Leia também
Proxies para o A-Parser: configuração para parsing de buscadores
Proxies para Xrumer: quais escolher e como configurar
Proxies para o Key Collector: configuração e rotação
Binom Tracker: configuração de proxy para arbitragem de tráfego
VKDog Pro: VK Content Auto-posting and Grabbing
