29 pontos por xguru 2021-11-29 | 12 comentários | Compartilhar no WhatsApp
<p>- Se você fosse criar um serviço que executa milhões de buscas no Google, precisaria de uma alternativa que não fosse bloqueada<br /> - O mais fácil é usar proxies pagos, mas costuma sair bem caro <br /> → Por isso, este é um texto interessante em que o autor explica em detalhes o que tentou<br /> <br /> - No começo, ele usou AWS Lambda + Puppeteer <br /> → A AWS oferece 16 regiões no mundo todo, e ao executar o Lambda 3 vezes um novo IP é atribuído <br /> → Ao executar 1000 Lambdas ao mesmo tempo, acaba usando cerca de 250 IPs públicos<br /> → 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 <br /> → 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)<br /> → Isso foi entre 2019 e 2020, então pode ter mudado <br /> <br /> - Esse método pode ser usado para fazer scraping em Google/Bing/Amazon etc., mas tem limitações<br /> → Não funciona se o alvo usar empresas anti-bot como DataDome, Akamai ou Imperva <br /> → Elas identificam se é bot por meio de fingerprinting do navegador de formas extremamente variadas<br /> → Google Picasso, fingerprinting de Font/TLS/WebGL..<br /> → Na prática, a maioria dos serviços de scraping em larga escala usa nuvem + contêineres Docker, então é fácil identificá-los<br /> <br /> - Infraestrutura de scraping escalável e difícil de detectar <br /> → Duas regras para fazer scraping com sucesso <br /> 1. Não falsificar a configuração do navegador <br /> 2. O mais importante é falsificar a configuração do navegador apenas “quando ninguém puder perceber”<br /> → Para isso, a conclusão é que o melhor é simplesmente “usar dispositivos reais”<br /> ⇨ Comprar 500 dispositivos Android baratos de vários fabricantes e contratar planos de dados econômicos<br /> ⇨ Distribuí-los por várias cidades (perto de antenas)<br /> ⇨ Usar open source como DeviceFarmer/stf para controlar os dispositivos ao mesmo tempo <br /> ⇨ Instalar um SO leve como Android Go e ativar o modo avião a cada 5 minutos para obter continuamente novos endereços IP<br /> ⇨ "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<br /> → Há muitos inconvenientes, como ter de comprar 500 dispositivos Android, precisar de um local para instalá-los e fazer manutenção do hardware <br /> <br /> - Melhoria: emular Android <br /> → Em vez de comprar dispositivos Android, e se usasse Android-X8, Bluestacks, Android Studio Emulator etc.?<br /> → O Proxidize permite criar proxies móveis 4G<br /> → Instalar 50 dongles 4G em um único servidor<br /> → Emular de 50 a 100 dispositivos Android em cada servidor <br /> → Instalar essas estações em 5 cidades <br /> → Gerenciar essas estações com comandos bem amarrados </p>

12 comentários

 
xguru 2021-12-06
<p>- Como contornar a detecção de bots: como fazer web scraping sem ser bloqueado https://pt.news.hada.io/topic?id=5304<br /> <br /> Proxies, serviços de scraping, software antibot etc. estão bem organizados no texto acima.</p>
 
eajrezz 2021-12-06
<p>Que hack incrível!</p>
 
joone 2021-12-04
<p>https://www.diffbot.com/products/crawl/<br /> <br /> 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.</p>
 
benjamin 2021-11-29
<p>De cair o queixo...</p>
 
xguru 2021-11-29
<p>Falando de algo totalmente diferente..<br /> <br /> Também existem lugares como o https://serpapi.com/ que vendem a API da busca do Google.<br /> Mas aqui eles também transformam a busca do Naver em API e vendem junto rs<br /> https://serpapi.com/naver-search-api<br /> <br /> O surpreendente? preço de $250 por 30 mil buscas por mês</p>
 
v08zbv8fvlkjasdflkj 2021-11-29
<p>É tão caro assim a ponto de surpreender? Não consigo ter uma noção.</p>
 
xguru 2021-11-29
<p>Sim, é extremamente caro. Em comparação com coisas como usar proxies pagos.<br /> Mas, por ser uma API, é prático e não há preocupação com bloqueio.</p>
 
hentol 2021-11-29
<p>Pensando no contexto do mercado coreano, vêm à mente alguns planos de operadoras virtuais gratuitos, com uma certa franquia de dados incluída...<br /> Mas, como é difícil fazer muitas adesões em massa, isso também parece complicado.</p>
 
xguru 2021-11-29
<p>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.</p>
 
nallwhy 2021-11-29
<p>Lembro que, quando fiz scraping de algo da naver no passado,<br /> não funcionava no AWS lambda, mas funcionava no GCP functions.<br /> Achei que fosse porque a faixa de IP era aberta, mas pelo visto não é isso.</p>
 
honore 2021-11-29
<p>Eu já estava fazendo pela forma nº 1, então fui ver que outros métodos existiam... nem tinha passado pela minha cabeça.</p>
 
xguru 2021-11-29
<p>Na verdade, o Lambda+Puppeteer da opção 1 também parece que funcionaria bem desse jeito,<br /> mas, em comparação com o método do Proxidize no final, provavelmente haverá diferença de custo dependendo da escala do scraping.<br /> 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. <br /> <br /> No fim, esse https://proxidize.com/ que foi apresentado é interessante. <br /> É uma solução de hardware + software que permite criar e gerenciar diretamente proxies móveis 4G.<br /> 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?<br /> <br /> Não chega a ser CGNAT, mas também existem soluções como o Scrapoxy, que gerenciam um pool completo de proxies de software.<br /> - Scrapoxy - ferramenta de gerenciamento de pool de proxies para web crawlers https://pt.news.hada.io/topic?id=2308</p&gt;