Escrito

Escalé el scraping de 10 a 50 páginas y me frenó Cloudflare

7 de septiembre de 20262 min de lectura

  • rag
  • agentes
  • web-scraping
  • impresoras-3d

Tengo un RAG de agentes que analiza el mercado del mundo 3D una vez por semana: precios de impresoras, qué está en tendencia, qué muñeco conviene para vender más, qué filamento está barato y con calidad. Arrancó scrapeando 10 páginas y andaba bien.

Cuando quise un análisis más detallado lo subí a 50. Ahí se cayó.

Contra qué me choqué

Lo que rompe no es el volumen en sí, es contra qué te choca el volumen. A 10 páginas no llamás la atención de nadie. A 50 empezás a parecer lo que sos, y aparecen los muros.

Tres cosas, todas juntas: 403 Forbidden de entrada en algunos sitios, rate limits en otros, y las protecciones antibot de Cloudflare en los más duros. No era que fallara una página puntual y el resto siguiera de largo. Cuando el sitio decide que sos un bot, no hay mucho para negociar.

La otra parte que me costó, y que al principio no separaba de esta, fue cómo estructurar el loop agéntico. Tenía los dos problemas mezclados: no sabía si algo fallaba porque me estaban bloqueando o porque el loop estaba mal armado.

Cómo lo resolví

Lo primero fue dejar de scrapear todo plano. Tratar las 50 páginas igual, con el mismo método, es lo que garantiza que te frenen justo en los sitios donde están las protecciones más duras.

Para esos sitios específicos metí las APIs propias de las páginas en lugar de scrapearlas. Si el sitio ya expone los datos por una vía pensada para que la consultes, pelearse con el HTML es hacerse el problema solo. El scraping quedó para donde no hay otra, y la API para donde sí la hay.

Para el loop agéntico fui a la página de Anthropic sobre patrones de agentes, tomé la estructura que recomiendan y la implementé tal cual. Una vez que el loop estuvo armado con un patrón conocido, lo que seguía fallando eran problemas de acceso de verdad y no ruido de mi propia arquitectura. Eso solo ya ordenó bastante.

Con eso hoy scrapea las 50 páginas y el análisis semanal sale más detallado.

Lo que me llevo

Una cosa concreta: cuando escalás volumen, no escalás el mismo método. La respuesta a "me bloquean" no es scrapear más prolijo, es cambiar de vía de acceso en los lugares donde la vía está cerrada. Mezclar APIs y scraping según el sitio no es una solución sucia, es la solución.

Y una más general. La IA avanza muy rápido: tanto como vos estés haciendo algo que creés que es nuevo, a la semana ya se creó con una estructura mejor, porque salen cosas nuevas y las capacidades son mejores. Lo viví en chico en este mismo proyecto. La parte del loop agéntico no la resolví pensándola de cero, la resolví yendo a buscar el patrón que ya estaba escrito, y salió mejor que lo que iba a armar solo.