Voltar ao blog

Proxies para scraping Aviasales, Booking e Skyscanner: como coletar preços sem bloqueios

Guia completo para escolher e configurar proxies para monitorar preços em agregadores de viagens: quais tipos de proxies usar, como evitar bloqueios e coletar dados do Aviasales, Booking, Skyscanner.

📅9 de março de 2026
```html

Agregadores de viagens como Aviasales, Booking, Skyscanner estão ativamente se protegendo contra a coleta automática de dados — bloqueiam IPs após 10-20 solicitações, mostram captchas e distorcem preços para bots. Se você está monitorando preços de passagens aéreas ou hotéis para seu serviço, programa de afiliados ou análise de mercado, sem proxies configurados corretamente, você será banido em poucos minutos de operação do scraper.

Neste guia, vamos discutir quais proxies são necessários para um scraping estável de sites de viagens, como configurar a rotação de IPs, contornar sistemas anti-bot como Cloudflare e Akamai, e quais erros levam a bloqueios mesmo ao usar proxies.

Por que os agregadores de viagens bloqueiam scraping e como eles fazem isso

Agregadores de viagens sofrem perdas reais devido ao scraping: cada solicitação à sua API custa dinheiro (eles pagam às companhias aéreas e hotéis pelo acesso aos dados), e os concorrentes usam os preços coletados para atrair clientes. Portanto, Aviasales, Booking, Skyscanner, Kayak investem milhões em proteção anti-bot.

Principais métodos de detecção de scraping

1. Análise da frequência de solicitações de um único IP. Um usuário comum faz 3-5 pesquisas por sessão, um scraper — centenas por minuto. Se seu IP fizer mais de 15-20 solicitações por minuto, o sistema o marcará como suspeito. Após 50-100 solicitações — bloqueio por 24 horas ou permanentemente.

2. Fingerprinting do navegador. Sites de viagens coletam dezenas de parâmetros: resolução da tela, fuso horário, fontes instaladas, impressão WebGL, impressão canvas, contexto de áudio. Se esses parâmetros não corresponderem à geolocalização do IP declarado (por exemplo, IP de Moscovo, mas fuso horário UTC+8) — isso é um sinal de proxy ou VPN.

3. Verificação da reputação do IP. Sites usam bancos de dados de provedores de proxies conhecidos, datacenters, servidores VPN. Se seu IP estiver listado em tais bancos (por exemplo, MaxMind GeoIP2, IPQualityScore, SEON), as solicitações são bloqueadas ou um captcha é exibido. Booking e Skyscanner são especialmente rigorosos com IPs de faixas da Amazon AWS, Google Cloud, DigitalOcean.

4. Análise comportamental. Sistemas anti-bot rastreiam movimentos do mouse, velocidade de rolagem, pausas entre cliques. Selenium e Puppeteer, sem patches adicionais, deixam rastros: a propriedade navigator.webdriver, ausência de plugins, tamanhos de janela não típicos. Mesmo com proxies, esse tráfego é facilmente reconhecido.

5. TLS-fingerprinting. Sistemas modernos anti-bot (Cloudflare, Akamai) analisam parâmetros da negociação TLS: ordem de cipher suites, extensões, versão do protocolo. O fingerprint TLS de requests do Python e bibliotecas padrão difere dos navegadores — isso imediatamente revela um bot.

Caso real: Um de nossos clientes fez scraping de preços na Booking através de 100 proxies de datacenter (DigitalOcean). Após 2 horas de operação, todos os IPs foram bloqueados permanentemente — a Booking detectou a faixa do datacenter e adicionou à lista negra. A mudança para proxies residenciais resolveu o problema: em um mês de operação — zero bloqueios.

Quais tipos de proxies são adequados para monitoramento de preços: comparação

Para scraping de agregadores de viagens, são utilizados três tipos de proxies: residenciais, móveis e proxies de datacenter. Cada tipo tem suas vantagens, desvantagens e cenários de aplicação. A escolha depende do volume de scraping, orçamento e requisitos de anonimato.

Tipo de proxy Nível de confiança dos sites Velocidade Custo (aproximado) Melhor para
Proxies residenciais Muito alto (IPs de usuários domésticos) Média (300-800 ms) $$$ (por tráfego) Booking, Expedia, Airbnb — sites com proteção rigorosa
Proxies móveis Máximo (IPs de operadoras móveis) Baixa (500-1500 ms) $$$$ (os mais caros) Scraping de versões móveis, solicitações de API, contornando Cloudflare
Proxies de datacenter Baixo (facilmente detectáveis) Muito alta (50-150 ms) $ (os mais baratos) API da Aviasales, agregadores menos protegidos, testes

Características da escolha para sites de viagens específicos

Aviasales e Skyscanner — são relativamente tolerantes ao scraping via API (se você tiver acesso de parceiro). Para scraping web, proxies residenciais com rotação a cada 5-10 solicitações são suficientes. Proxies de datacenter funcionam, mas exigem um grande pool de IPs (mínimo de 500 endereços) e rotação lenta (não mais que 1 solicitação a cada 30 segundos de um único IP).

Booking.com e Expedia — usam Cloudflare Enterprise com regras rigorosas. Proxies de datacenter são bloqueados em 90% dos casos, mesmo com scraping lento. Apenas proxies residenciais ou móveis são necessários, além da emulação de um navegador real (Selenium Stealth, Puppeteer Extra com plugins). A rotação de IPs deve ocorrer após cada 3-5 solicitações.

Airbnb — um dos sites mais protegidos. Exige proxies residenciais com geolocalização correspondente à consulta de pesquisa (se você está procurando hotéis em Paris — o IP deve ser francês). Cookies, referer e cabeçalhos do navegador são obrigatórios. Proxies móveis mostram os melhores resultados para scraping via API móvel.

Kayak e Momondo — nível médio de proteção. Proxies residenciais são a escolha ideal. Proxies de datacenter podem ser usados, mas com rotação obrigatória e atrasos entre solicitações (mínimo de 10-15 segundos).

Proxies residenciais vs. de datacenter: o que escolher para sites de viagens

A principal diferença entre proxies residenciais e de datacenter é a fonte do endereço IP. Proxies residenciais usam IPs de provedores de internet domésticos reais (Ростелеком, МТС, Comcast, Verizon), enquanto proxies de datacenter usam IPs de servidores de empresas de hospedagem (AWS, Google Cloud, OVH). Sites de viagens confiam em IPs residenciais porque são usados por usuários comuns.

Quando os proxies residenciais são obrigatórios

1. Scraping de sites com Cloudflare/Akamai. Booking, Expedia, Airbnb usam esses sistemas — eles bloqueiam automaticamente 95% dos IPs de datacenters. Proxies residenciais passam na verificação, pois seus IPs não estão listados em bancos de dados de provedores de proxies.

2. Coleta de preços com base na geolocalização. Sites de viagens mostram preços diferentes para usuários de diferentes países e cidades (devido a impostos, taxas de câmbio, promoções locais). Se você precisa de preços para uma região específica (por exemplo, preços para residentes da Alemanha), proxies residenciais com IPs alemães são a única opção confiável.

3. Scraping de longo prazo sem bloqueios. Se você está monitorando preços 24/7 por meses, proxies residenciais compensam — você não perde tempo substituindo IPs bloqueados e configurando novos proxies.

Quando é possível usar proxies de datacenter

1. Scraping através de APIs oficiais. Se você tem acesso de parceiro à API da Aviasales, API do Skyscanner — o tipo de proxy não é crítico, as APIs são menos sensíveis à fonte do IP. Proxies de datacenter oferecem alta velocidade e baixo custo.

2. Testes e desenvolvimento de scrapers. Na fase de escrita e depuração do código, use proxies de datacenter — eles são mais baratos, mais rápidos, e não há problema se alguns IPs forem banidos.

3. Scraping de agregadores menos protegidos. Alguns sites de viagens regionais ou agregadores de passagens de ônibus não usam proteção anti-bot avançada. Para eles, proxies de datacenter com um grande pool de IPs e rotação lenta são adequados.

Dica: Combine tipos de proxies. Use proxies residenciais para solicitações críticas (primeira pesquisa, obtenção de tokens, contorno de captcha), e proxies de datacenter para solicitações em massa a APIs ou endpoints menos protegidos. Isso reduzirá os custos em 40-60% mantendo a estabilidade.

Estratégia de rotação de IP: com que frequência mudar proxies durante o scraping

A rotação correta de IPs é a chave para um scraping de longo prazo sem bloqueios. Se você mudar IPs com muita frequência, rapidamente esgotará o pool de endereços e terá altos custos de tráfego. Se mudar com pouca frequência — acumulará atividade suspeita em um único IP e será banido.

Tipos de rotação de proxies

1. Rotação por solicitações (rotating proxies). O IP muda automaticamente após cada solicitação ou após um número definido de solicitações. A maioria dos provedores de proxies residenciais oferece esse modo: você se conecta a um único endpoint (por exemplo, gate.proxycove.com:8000), e o IP muda do lado do provedor.

Prós: Facilidade de configuração, não é necessário gerenciar o pool de IPs manualmente, risco mínimo de bloqueio de um único IP.
Contras: Não é possível controlar sessões (se precisar manter cookies ou tokens), cada solicitação = novo IP = novos custos de tráfego.

2. Sessões fixas (sticky sessions). O IP é fixado à sua sessão por um determinado período (geralmente 10-30 minutos). Você faz várias solicitações de um único IP, depois ele muda automaticamente. Configurado através de parâmetros de proxy (por exemplo, adicionando session-id123 no login).

Prós: É possível manter cookies e tokens dentro da sessão, menor consumo de tráfego (um IP = várias solicitações).
Contras: Se o IP for banido durante a sessão, todas as solicitações subsequentes nessa sessão serão bloqueadas.

3. Rotação manual a partir do pool. Você recebe uma lista de endereços IP (por exemplo, 1000) e gerencia a rotação no código do scraper: escolhe um IP aleatório da lista, faz N solicitações, muda para o próximo. Típico para proxies de datacenter.

Prós: Controle total sobre a rotação, é possível excluir IPs bloqueados do pool.
Contras: É necessário escrever a lógica de rotação no código, gerenciar o estado dos IPs (quais foram usados, quais foram bloqueados).

Frequência recomendada de rotação para sites de viagens

Site Tipo de proxy Frequência de rotação Máx. solicitações com 1 IP
Booking.com Residenciais Após 3-5 solicitações 5-7
Expedia Residenciais Após 5-8 solicitações 8-10
Airbnb Residenciais/móveis Após 2-4 solicitações 3-5
Aviasales Residenciais/datacenter Após 10-15 solicitações 15-20
Skyscanner Residenciais/datacenter Após 8-12 solicitações 12-15
Kayak Residenciais Após 5-10 solicitações 10-12

Importante: Esses são valores médios. Os limites reais dependem da hora do dia (à noite, os sistemas anti-bot são mais rigorosos), do tipo de solicitações (pesquisa de passagens aéreas = maior carga na API do que visualização de hotéis), da qualidade da emulação do navegador. Comece com valores conservadores (menos solicitações por IP), e depois aumente gradualmente, monitorando a porcentagem de bloqueios.

Geo-targeting de proxies: por que o país e a cidade do IP são importantes

Sites de viagens mostram preços diferentes dependendo da geolocalização do usuário. Isso não é um bug, mas um modelo de negócio: companhias aéreas e hotéis estabelecem tarifas diferentes para diferentes mercados. Por exemplo, uma passagem Moscovo-Nova Iorque pode custar $600 para um usuário da Rússia e $750 para um usuário dos EUA (devido a impostos, concorrência, poder de compra).

Como os sites determinam a geolocalização

1. Pelo endereço IP. Método principal. Os sites usam bancos de dados GeoIP (MaxMind, IP2Location), que mapeiam o IP para cidade, região, país. A precisão na determinação da cidade é de 70-90%, do país é de 95-99%.

2. Pelo idioma do navegador e fuso horário. Se o IP mostra a Alemanha, mas o idioma do navegador é russo e o fuso horário é UTC+3 (Moscovo) — isso é um sinal de proxy. O site pode mostrar um captcha ou bloquear a solicitação.

3. Pela moeda e configurações da conta. Se você está logado em uma conta da Booking, o site se lembra do seu país ao se registrar. Mudar o IP para outro país levantará suspeitas — a Booking pode pedir para confirmar a identidade ou bloquear a conta.

Como escolher corretamente a geolocalização do proxy

Para coletar preços de um mercado específico: Use IP do país cujos preços você está interessado. Se você está monitorando preços para o mercado russo — use proxies residenciais russos. Para o mercado europeu — proxies de países da UE (Alemanha, França, Polônia). Para os EUA — proxies americanos.

Para contornar bloqueios geográficos: Alguns sites de viagens ou ofertas especiais estão disponíveis apenas de determinados países. Por exemplo, voos internos nos EUA costumam ser mais baratos ao serem reservados com um IP americano. Use proxies do país necessário + configure o idioma do navegador e o fuso horário para esse país.

Para scraping de dados globais: Se você precisa de preços para todos os mercados (por exemplo, para análise), use um pool de proxies de diferentes países. Rotacione a geolocalização junto com o IP: solicitação com IP alemão → preços alemães, solicitação com IP francês → preços franceses.

Erro: Usar IP de um país, mas procurar hotéis/passagens em outro país com moeda não correspondente. Por exemplo, IP da Rússia, procurando hotéis na Tailândia, moeda — euro. Isso parece suspeito. Ou use IP do país de destino, ou IP do seu país real com sua moeda.

Configuração de proxies para scrapers e scripts populares

Vamos considerar a configuração de proxies para as ferramentas de scraping de sites de viagens mais populares. Os exemplos são dados para proxies residenciais com rotação, mas também se aplicam a outros tipos.

Python + requests / httpx

A opção mais simples para scraping de APIs ou páginas simples sem JavaScript. Adequado para API da Aviasales, API do Skyscanner, endpoints simples sem Cloudflare.

import requests

# Dados do proxy (substitua pelos seus)
proxy_host = "gate.proxycove.com"
proxy_port = "8000"
proxy_user = "seu_nome_de_usuario"
proxy_pass = "sua_senha"

proxies = {
    "http": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
    "https": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
}

# Cabeçalhos do navegador (obrigatório!)
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "Accept-Language": "pt-BR,pt;q=0.9",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Referer": "https://www.google.com/"
}

# Solicitação através do proxy
response = requests.get(
    "https://www.aviasales.com/search",
    proxies=proxies,
    headers=headers,
    timeout=30
)

print(response.status_code)
print(response.text[:500])  # Primeiros 500 caracteres da resposta

Importante: Para proxies residenciais com rotação, cada nova solicitação receberá automaticamente um novo IP. Se precisar de uma sessão fixa (um IP para várias solicitações), adicione um ID de sessão no nome de usuário: seu_nome_de_usuario-session-12345.

Selenium (para sites com JavaScript)

Booking, Expedia, Airbnb usam ativamente JavaScript para renderizar conteúdo e verificar anti-bot. Selenium emula um navegador real, mas requer configurações adicionais para contornar a detecção.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

# Configurações do Chrome
chrome_options = Options()

# Proxy
proxy_host = "gate.proxycove.com"
proxy_port = "8000"
proxy_user = "seu_nome_de_usuario"
proxy_pass = "sua_senha"

# Formato do proxy para o Chrome
chrome_options.add_argument(f'--proxy-server=http://{proxy_host}:{proxy_port}')

# Ocultando a automação
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)

# User-Agent
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36')

driver = webdriver.Chrome(options=chrome_options)

# Removendo a propriedade webdriver
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

# Autenticação do proxy (se necessário)
# Para o Chrome, é necessário criar uma extensão com autenticação, veja selenium-wire ou use Puppeteer

driver.get("https://www.booking.com/")
print(driver.title)
driver.quit()

Problema: O Chrome não suporta autenticação de proxy através de login:senha diretamente. Soluções: use a biblioteca selenium-wire (adiciona proxy com autenticação), crie uma extensão do Chrome para autenticação, ou use Puppeteer (Node.js).

Puppeteer (Node.js) — a melhor escolha para sites complexos

Puppeteer emula melhor o navegador do que Selenium e é facilmente configurável com autenticação de proxy. Recomendado para Booking, Airbnb, Expedia.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: true,
    args: [
      '--proxy-server=http://gate.proxycove.com:8000',
      '--disable-blink-features=AutomationControlled',
      '--no-sandbox'
    ]
  });

  const page = await browser.newPage();

  // Autenticação do proxy
  await page.authenticate({
    username: 'seu_nome_de_usuario',
    password: 'sua_senha'
  });

  // Ocultando o webdriver
  await page.evaluateOnNewDocument(() => {
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    });
  });

  // User-Agent
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');

  await page.goto('https://www.booking.com/', { waitUntil: 'networkidle2' });
  
  const title = await page.title();
  console.log('Título:', title);

  await browser.close();
})();

Para ainda melhor proteção contra detecção, use o plugin puppeteer-extra-plugin-stealth — ele oculta automaticamente todos os sinais de automação.

Soluções prontas: Scrapy, Crawlee

Scrapy (Python) — framework para scraping em larga escala. Suporta proxies através de middleware. Exemplo de configuração em settings.py:

# settings.py
DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 1,
}

# Na aranha
class TravelSpider(scrapy.Spider):
    def start_requests(self):
        proxy = "http://seu_nome_de_usuario:sua_senha@gate.proxycove.com:8000"
        yield scrapy.Request(
            url="https://www.aviasales.com/",
            meta={'proxy': proxy},
            callback=self.parse
        )

Crawlee (Node.js) — framework moderno com rotação de proxies embutida, contorno de sistemas anti-bot, tentativas automáticas. Excelente para sites de viagens.

Contornando sistemas anti-bot Cloudflare, PerimeterX, Akamai

Mesmo com proxies residenciais de qualidade, você pode enfrentar bloqueios se não contornar os sistemas anti-bot corretamente. Booking usa Cloudflare, Airbnb — PerimeterX, alguns sites — Akamai Bot Manager. Esses sistemas analisam não apenas o IP, mas também o comportamento, fingerprint do navegador, negociação TLS.

Cloudflare: principais métodos de contorno

1. Use automação de navegador. Cloudflare verifica o desafio JavaScript, que é executado no navegador. Solicitações HTTP simples (requests, curl) não passarão pela verificação. É necessário Puppeteer, Playwright ou Selenium com as configurações corretas.

2. Oculte sinais de automação. Instale puppeteer-extra-plugin-stealth (Node.js) ou undetected-chromedriver (Python). Essas bibliotecas fazem patch no navegador, removendo propriedades como navigator.webdriver, window.chrome, alterando permissões da API.

3. Fingerprint TLS correto. Cloudflare analisa a negociação TLS. Use bibliotecas que emulam TLS de navegadores: curl-impersonate (emula TLS do Chrome/Firefox), tls-client (Go), hrequests (Python).

4. Resolva captchas automaticamente. Se Cloudflare mostrar um captcha (Turnstile), use serviços de resolução de captcha: 2Captcha, Anti-Captcha, CapSolver. Eles se integram via API e custam $1-3 por 1000 soluções.

PerimeterX (Airbnb, alguns sites de viagens)

PerimeterX é um dos sistemas anti-bot mais complexos. Ele analisa o comportamento do usuário (movimentos do mouse, cliques, rolagem), cria um fingerprint do dispositivo, verifica cookies e localStorage.

Métodos de contorno:

1. Emule o comportamento do usuário. Adicione pausas aleatórias entre as ações (2-5 segundos), mova o mouse, role a página. No Puppeteer, use a biblioteca ghost-cursor para movimentos realistas do mouse.

2. Mantenha cookies e localStorage. PerimeterX gera tokens que são armazenados em cookies (_px3, _pxhd) e localStorage. Se você mudar o IP, mas mantiver os cookies — isso é suspeito. Ou mude o IP + limpe os cookies, ou use sessões fixas (um IP = uma sessão com cookies).

3. Use proxies móveis. PerimeterX é mais rigoroso com IPs de datacenter. Proxies móveis mostram melhores resultados para contornar o PerimeterX.

Akamai Bot Manager

Akamai analisa dados sensoriais (acelerômetro, giroscópio em dispositivos móveis), fingerprint WebGL, contexto de áudio, desempenho do dispositivo. O contorno exige emulação avançada do navegador.

Recomendações: Use navegadores reais (não headless), proxies móveis, adicione atrasos aleatórios, emule eventos sensoriais (touch events). Para casos complexos — use fazendas de navegadores (BrowserStack, LambdaTest) ou navegadores anti-detect (AdsPower, Multilogin).

Erros comuns ao fazer scraping de sites de viagens através de proxies

Mesmo desenvolvedores experientes cometem erros que levam a bloqueios. Aqui estão os problemas mais frequentes e suas soluções.

Erro 1: Uso de um único User-Agent para todas as solicitações

Se todas as suas solicitações vêm com o mesmo User-Agent (por exemplo, o padrão do Python requests: python-requests/2.28.0), isso imediatamente revela um bot. Mesmo que você mude o IP, o site vê o mesmo UA e associa as solicitações.

Solução: Use uma lista de User-Agents reais de navegadores (Chrome, Firefox, Safari) e rotacione-os. A biblioteca fake-useragent (Python) gera automaticamente UA aleatórios.

Erro 2: Velocidade de solicitações muito alta

O scraper faz 100 solicitações por segundo — isso é fisicamente impossível para um humano. Mesmo com diferentes IPs, os sistemas anti-bot detectam atividade anômala por padrões (todas as solicitações chegam exatamente a cada 0,01 segundos).

Solução: Adicione atrasos aleatórios entre as solicitações: time.sleep(random.uniform(2, 5)). Para sites de viagens, o ideal é: 2-5 segundos entre solicitações de um único IP, 0,5-2 segundos entre solicitações de IPs diferentes.

Erro 3: Ignorar cookies e sessões

Sites de viagens usam cookies para rastrear sessões, armazenar tokens de sistemas anti-bot, personalizar preços. Se você faz cada solicitação sem cookies (como um novo usuário), isso é suspeito.

Solução: Use requests.Session() (Python) ou mantenha cookies entre solicitações no Puppeteer. Para sessões fixas (um IP = várias solicitações) é imprescindível manter os cookies.

Erro 4: Incompatibilidade entre geolocalização do IP e parâmetros do navegador

IP da Alemanha, mas o idioma do navegador é russo, o fuso horário é UTC+3, a moeda é rublos. Sistemas anti-bot veem essa incompatibilidade e bloqueiam a solicitação.

Solução: Sincronize os parâmetros do navegador com a geolocalização do proxy. Se usar um IP alemão — defina o idioma alemão (Accept-Language: de-DE), fuso horário Europe/Berlin, moeda EUR.

Erro 5: Uso de proxies gratuitos ou de baixa qualidade

Proxies gratuitos e públicos baratos já estão bloqueados em todos os grandes sites de viagens. Seus IPs estão em listas negras, têm má reputação (foram usados para spam, DDoS).

Solução: Use proxies residenciais ou móveis de qualidade de provedores confiáveis. Verifique a reputação dos IPs através de serviços como IPQualityScore, Scamalytics antes de usar.

Checklist antes de iniciar o scraper:
✅ Proxies — residenciais ou móveis, com a geolocalização necessária
✅ User-Agent — navegador real, rotacionado
✅ Cookies — mantidos dentro da sessão
✅ Atrasos — 2-5 segundos entre solicitações
✅ Rotação de IP — após 3-10 solicitações (dependendo do site)

```