Si quieres hacer web scraping como las grandes empresas (2021)
(incolumitas.com)Here is a summary of the key points from the article in Korean, formatted as a markdown bullet list:
Cómo construir una infraestructura de scraping a gran escala
- Ejecutar Headless Chrome en AWS Lambda para scrapear millones de resultados de Google SERP por semana
- Al invocar la función Lambda 3 veces, se puede obtener una nueva IP pública
- Si se invocan 1000 funciones Lambda al mismo tiempo, se pueden usar unas 250 IP públicas
- Usando 16 regiones, es posible utilizar unas 4000 direcciones IP públicas
- Pero este método solo funciona en sitios como Google, Bing y Amazon. No funciona en sitios que usan soluciones antibots como DataDome, Akamai o Imperva
- Las soluciones antibots usan diversas técnicas, como fingerprinting del navegador, detección de mentiras y detección de comportamientos distintos a los humanos
- La razón por la que es difícil evitar la detección de bots es que la mayoría corre en la nube con Docker o Kubernetes
Propuesta de una infraestructura de scraping escalable y difícil de detectar
- Comprar 500 dispositivos Android baratos de 5 fabricantes
- Usar planes de datos económicos y controlar los dispositivos con DeviceFarmer/stf
- Distribuir 100 dispositivos en cada una de 5 ciudades principales: Londres, París, Boston, Fráncfort y LA
- Instalar Android Go liviano y activar/desactivar el modo avión cada 5 minutos para cambiar la dirección IP
- Las IP móviles de 4G/5G/LTE no se pueden bloquear. Como muchos usuarios las comparten, ni siquiera Instagram puede bloquear a 200 mil personas en LA
- Es necesario manipular a nivel de kernel eventos como la orientación y el movimiento del dispositivo
Mejora: emulación de Android
- Usar emuladores como Android-x86 en VirtualBox, Bluestacks o Android Studio
- Pero existen muchas técnicas para detectar emulación (redpill basado en navegador, escaneo del puerto adb, detección del ID de publicidad, detección de inicio de sesión social, etc.)
- Conectar dongles 4G al servidor para usarlos directamente desde el emulador de Android
- Colocar 1 servidor de scraping potente en cada una de 5 ciudades principales, con 50 dongles conectados en cada uno
- Ejecutar entre 50 y 100 emuladores de Android en cada servidor
- Coordinar las 5 estaciones de scraping con un servidor simple de control de comandos
Opinión de GN⁺
- Usar dispositivos reales parece tener un costo de administración alto y límites de escalabilidad. El uso de emuladores parece una alternativa realista.
- Pero las técnicas de detección de emuladores también siguen avanzando, así que no parece que usar un emulador por sí solo vaya a ser seguro. Harán falta actualizaciones y mejoras continuas.
- Usar IP móviles 4G/5G es una buena idea. Sin embargo, tampoco se puede descartar que las operadoras bloqueen ciertos dispositivos o ajusten los planes.
- Además de evitar el uso de IPs de centros de datos, crear patrones de comportamiento similares a los humanos podría ayudar a evadir la detección de bots. En lugar de automatizar la recolección a gran escala, podría valer la pena considerar una recolección lenta con concurrencia limitada.
- También podría valer la pena considerar el uso de navegadores comerciales anti-detección como Multilogin o GoLogin. Sin embargo, existe el problema del costo de las licencias.
Aún no hay comentarios.