29 pontos por xguru 2021-11-29 | 12 comentários | Compartilhar no WhatsApp
  • Se você fosse criar um serviço que executa milhões de buscas no Google, precisaria de uma alternativa que não fosse bloqueada

  • O mais fácil é usar proxies pagos, mas costuma sair bem caro

→ Por isso, este é um texto interessante em que o autor explica em detalhes o que tentou

  • No começo, ele usou AWS Lambda + Puppeteer

→ A AWS oferece 16 regiões no mundo todo, e ao executar o Lambda 3 vezes um novo IP é atribuído

→ Ao executar 1000 Lambdas ao mesmo tempo, acaba usando cerca de 250 IPs públicos

→ 16 regiões * 250 dá 4000 endereços IP, e isso já basta para fazer buscas no Google na casa dos milhões por semana

→ Ele também testou na GCP, e o curioso é que o Google bloqueia de forma mais agressiva os IPs da própria nuvem (em comparação com a AWS)

→ Isso foi entre 2019 e 2020, então pode ter mudado

  • Esse método pode ser usado para fazer scraping em Google/Bing/Amazon etc., mas tem limitações

→ Não funciona se o alvo usar empresas anti-bot como DataDome, Akamai ou Imperva

→ Elas identificam se é bot por meio de fingerprinting do navegador de formas extremamente variadas

→ Google Picasso, fingerprinting de Font/TLS/WebGL..

→ Na prática, a maioria dos serviços de scraping em larga escala usa nuvem + contêineres Docker, então é fácil identificá-los

  • Infraestrutura de scraping escalável e difícil de detectar

→ Duas regras para fazer scraping com sucesso

  1. Não falsificar a configuração do navegador

  2. O mais importante é falsificar a configuração do navegador apenas “quando ninguém puder perceber”

→ Para isso, a conclusão é que o melhor é simplesmente “usar dispositivos reais”

⇨ Comprar 500 dispositivos Android baratos de vários fabricantes e contratar planos de dados econômicos

⇨ Distribuí-los por várias cidades (perto de antenas)

⇨ Usar open source como DeviceFarmer/stf para controlar os dispositivos ao mesmo tempo

⇨ Instalar um SO leve como Android Go e ativar o modo avião a cada 5 minutos para obter continuamente novos endereços IP

⇨ "4G carrier grade NAT": o NAT de operadora 4G foi criado para evitar o esgotamento de endereços IPv4, então como centenas de milhares compartilham o mesmo IP, bloquear se torna inviável

→ Há muitos inconvenientes, como ter de comprar 500 dispositivos Android, precisar de um local para instalá-los e fazer manutenção do hardware

  • Melhoria: emular Android

→ Em vez de comprar dispositivos Android, e se usasse Android-X8, Bluestacks, Android Studio Emulator etc.?

→ O Proxidize permite criar proxies móveis 4G

→ Instalar 50 dongles 4G em um único servidor

→ Emular de 50 a 100 dispositivos Android em cada servidor

→ Instalar essas estações em 5 cidades

→ Gerenciar essas estações com comandos bem amarrados

12 comentários

 
xguru 2021-12-06

Proxies, serviços de scraping, software antibot etc. estão bem organizados no texto acima.

 
eajrezz 2021-12-06

Que hack incrível!

 
joone 2021-12-04

https://www.diffbot.com/products/crawl/

Também existe um serviço que faz crawling e scraping de páginas da web. Os dados extraídos são armazenados em JSON, excluindo as informações desnecessárias.

 
benjamin 2021-11-29

De cair o queixo...

 
xguru 2021-11-29

Falando de algo totalmente diferente..

Também existem lugares como o https://serpapi.com/ que vendem a API da busca do Google.

Mas aqui eles também transformam a busca do Naver em API e vendem junto rs

https://serpapi.com/naver-search-api

O surpreendente? preço de $250 por 30 mil buscas por mês

 
v08zbv8fvlkjasdflkj 2021-11-29

É tão caro assim a ponto de surpreender? Não consigo ter uma noção.

 
xguru 2021-11-29

Sim, é extremamente caro. Em comparação com coisas como usar proxies pagos.

Mas, por ser uma API, é prático e não há preocupação com bloqueio.

 
hentol 2021-11-29

Pensando no contexto do mercado coreano, vêm à mente alguns planos de operadoras virtuais gratuitos, com uma certa franquia de dados incluída...

Mas, como é difícil fazer muitas adesões em massa, isso também parece complicado.

 
xguru 2021-11-29

No caso do Google Fi, dá para ter até 4 SIMs de dados adicionais em uma única linha, então isso também parece ser uma opção.

 
nallwhy 2021-11-29

Lembro que, quando fiz scraping de algo da naver no passado,

não funcionava no AWS lambda, mas funcionava no GCP functions.

Achei que fosse porque a faixa de IP era aberta, mas pelo visto não é isso.

 
honore 2021-11-29

Eu já estava fazendo pela forma nº 1, então fui ver que outros métodos existiam... nem tinha passado pela minha cabeça.

 
xguru 2021-11-29

Na verdade, o Lambda+Puppeteer da opção 1 também parece que funcionaria bem desse jeito,

mas, em comparação com o método do Proxidize no final, provavelmente haverá diferença de custo dependendo da escala do scraping.

Quanto maior a necessidade de volume, mais estável o Proxidize tende a ser, mas, para fazer algo de forma simples, a opção 1 também não parece ruim.

No fim, esse https://proxidize.com/ que foi apresentado é interessante.

É uma solução de hardware + software que permite criar e gerenciar diretamente proxies móveis 4G.

A versão com 5 dongles custa $399. Pelo fato de a Coreia do Sul aparecer na lista de países dos usuários, parece que dá para usar, talvez?

Não chega a ser CGNAT, mas também existem soluções como o Scrapoxy, que gerenciam um pool completo de proxies de software.