29 puntos por xguru 2021-11-29 | 12 comentarios | Compartir por WhatsApp
<p>- Si fueras a crear un servicio que ejecuta millones de búsquedas en Google, necesitas una alternativa que no termine bloqueada<br /> - Lo más fácil es usar proxies de pago, pero suelen ser bastante caros <br /> → Por eso el autor explica en detalle varias cosas que probó, en un artículo interesante<br /> <br /> - Al principio usó AWS Lambda + Puppeteer <br /> → AWS ofrece 16 regiones en todo el mundo, y al ejecutar Lambda 3 veces se asigna una IP nueva <br /> → Si ejecutas 1000 lambdas al mismo tiempo, terminas usando unas 250 IP públicas<br /> → 16 regiones * 250 da 4000 direcciones IP, y eso alcanza para hacer búsquedas en Google a escala de millones por semana <br /> → También lo probó en GCP, y lo curioso es que Google bloquea más agresivamente las IP de su propia nube (comparado con AWS)<br /> → Esto fue entre 2019 y 2020, así que puede haber cambiado <br /> <br /> - Este método sirve para hacer scraping de Google/Bing/Amazon, pero tiene límites<br /> → No aplica si usan empresas anti-bot como DataDome, Akamai o Imperva <br /> → Detectan si eres un bot mediante browser fingerprinting con técnicas muy variadas<br /> → Google Picasso, fingerprinting de fuentes/TLS/WebGL..<br /> → De hecho, la mayoría de los servicios de scraping a gran escala usan nube + contenedores Docker, así que son fáciles de identificar<br /> <br /> - Infraestructura de scraping escalable y difícil de detectar <br /> → Dos reglas para hacer scraping con éxito <br /> 1. No falsificar la configuración del navegador <br /> 2. Lo más importante: falsificar la configuración del navegador solo "si nadie se va a dar cuenta"<br /> → La conclusión es que para eso lo mejor es simplemente "usar dispositivos reales"<br /> ⇨ Comprar 500 dispositivos Android baratos de varios fabricantes y contratar planes de datos económicos<br /> ⇨ Distribuirlos en varias ciudades (cerca de antenas)<br /> ⇨ Usar open source como DeviceFarmer/stf para controlar varios dispositivos al mismo tiempo <br /> ⇨ Instalar un SO liviano como Android Go y hacer que entren en modo avión cada 5 minutos para seguir obteniendo nuevas direcciones IP<br /> ⇨ "4G carrier grade NAT": el NAT a nivel operador en 4G fue diseñado para evitar el agotamiento de direcciones IPv4, y como una IP la comparten cientos de miles de usuarios, bloquearla es inviable<br /> → Hay muchas molestias: hay que comprar 500 dispositivos Android, tener un lugar donde instalarlos y encargarse del mantenimiento del hardware <br /> <br /> - Mejora: emular Android <br /> → En vez de comprar dispositivos Android, ¿qué tal usar Android-X8, Bluestacks o Android Studio Emulator?<br /> → Proxidize permite crear proxies móviles 4G<br /> → Instalar 50 dongles 4G en un solo servidor<br /> → Emular entre 50 y 100 dispositivos Android en cada servidor <br /> → Instalar estas estaciones en 5 ciudades <br /> → Administrar estas estaciones con comandos sólidos </p>

12 comentarios

 
xguru 2021-12-06
<p>- Cómo evadir la detección de bots: cómo hacer web scraping sin que te bloqueen https://es.news.hada.io/topic?id=5304<br /> <br /> Los proxies, los servicios de scraping y el software antibots, entre otros, están bien resumidos en el artículo de arriba.</p>
 
eajrezz 2021-12-06
<p>¡Qué hack tan genial!</p>
 
joone 2021-12-04
<p>https://www.diffbot.com/products/crawl/<br /> <br /> También existe un servicio que hace crawling y scraping de páginas web. Los datos extraídos se guardan en formato JSON, excluyendo la información innecesaria.</p>
 
benjamin 2021-11-29
<p>Se me cae la mandíbula...</p>
 
xguru 2021-11-29
<p>Pero cambiando totalmente de tema... <br /> <br /> También existen sitios como https://serpapi.com/ que venden Google Search como API. <br /> Pero aquí también venden la búsqueda de Naver como API jaja<br /> https://serpapi.com/naver-search-api<br /> <br /> El sorprendente(?) precio es de $250 por 30 mil búsquedas al mes</p>
 
v08zbv8fvlkjasdflkj 2021-11-29
<p>¿Es sorprendente porque es demasiado caro? No me doy una idea.</p>
 
xguru 2021-11-29
<p>Sí, es bastante caro. En comparación con usar proxies de pago, por ejemplo.<br /> Pero al ser una API, es cómodo porque no hay que preocuparse por bloqueos.</p>
 
hentol 2021-11-29
<p>En Corea se me ocurren esos planes de telefonía móvil económica de 0 won que, dentro de lo que cabe, sí ofrecen cierta cantidad de datos...<br /> Pero como es difícil hacer muchas altas en masa, supongo que esto también sería complicado.</p>
 
xguru 2021-11-29
<p>En el caso de Google Fi, se pueden tener hasta 4 SIM de datos adicionales por línea, así que algo como eso también podría ser una opción.</p>
 
nallwhy 2021-11-29
<p>Hace tiempo, cuando hice scraping de algo de naver,<br /> en AWS Lambda no funcionaba, pero sí en GCP Functions.<br /> Recordaba que pensé que sería porque el rango de IP estaba abierto, pero parece que no era eso.</p>
 
honore 2021-11-29
<p>Yo ya lo estaba haciendo con el método 1, así que me puse a ver qué otros métodos había... la verdad, nunca se me habría ocurrido.</p>
 
xguru 2021-11-29
<p>De hecho, creo que la opción 1 de Lambda+Puppeteer también podría funcionar bien si se hace de esa manera.<br /> Pero, comparado con el método de Proxidize del final, probablemente haya una diferencia de costos según la escala del scraping.<br /> Mientras más volumen se necesite, Proxidize seguramente será más estable, pero para hacerlo de forma simple, la opción 1 tampoco parece mala. <br /> <br /> El https://proxidize.com/ que presentaron al final está interesante. <br /> Es una solución de hardware+software que te permite crear y administrar directamente proxies móviles 4G.<br /> La versión de 5 dongles cuesta $399. Viendo que Corea también aparece en la lista de países para usuarios, parece que sí se puede usar.<br /> <br /> No llega a ser CGNAT, pero también existen soluciones como Scrapoxy, que administran por completo un pool de proxies de software.<br /> - Scrapoxy - herramienta de administración de pool de proxies para rastreadores web https://es.news.hada.io/topic?id=2308</p&gt;