- Crawlee es una biblioteca de Python para web scraping y automatización de navegadores
- Ayuda a construir rápidamente crawlers confiables
- Puede usarse para extraer datos para AI, LLM, RAG y GPT
- Permite descargar archivos como HTML, PDF, JPG y PNG desde sitios web
- Funciona junto con BeautifulSoup, Playwright y HTTP puro
- Soporta tanto el modo Headful como el modo Headless
- Ofrece rotación de proxies
Características
- Proporciona una interfaz unificada para crawling HTTP y de navegadores Headless
- Realiza crawling paralelo automático según los recursos del sistema disponibles
- Está escrita en Python con type hints, lo que mejora el autocompletado en el IDE y reduce errores
- Reintenta automáticamente cuando ocurre un error o cuando hay bloqueo
- Incluye rotación de proxies y gestión de sesiones integradas
- Enrutamiento de solicitudes configurable: dirige las URL directamente al handler adecuado
- Cola persistente para las URL que se van a rastrear
- Almacenamiento enchufable tanto para datos tabulares como para archivos
- Potentes capacidades de manejo de errores
Diferencias frente a Scrapy
- Crawlee soporta por defecto el crawling con navegadores Headless (Playwright)
- Interfaz simple y elegante: permite configurar un scraper con menos de 10 líneas de código
- Aplicación completa de type hints
- Basado en Asyncio estándar
Opinión de GN⁺
- Crawlee parece una herramienta potente para web scraping y crawling. En especial, su soporte nativo para crawling basado en navegadores Headless parece una gran ventaja.
- Su interfaz simple y la poca cantidad de código necesaria para crear un crawler hacen que se vea muy productiva. Además, el uso activo de type hints mejora la experiencia de desarrollo y reduce la posibilidad de errores.
- Si tienes un proyecto que necesita crawling para extracción de datos, vale la pena considerar seriamente a Crawlee. En particular, si necesitas rastrear páginas web que requieren renderizado de JavaScript, PlaywrightCrawler parece ser muy útil.
- Sin embargo, si necesitas crawling a muy gran escala o la inmediatez es crítica, podría ser mejor usar Scrapy u otra herramienta con soporte para crawling distribuido.
- También parece recomendable revisar suficientemente las políticas de crawling y los temas legales antes de usarla.
2 comentarios
Sabía que era compatible con Node, pero parece que también soporta Python. Si es un scraper que va a requerir mantenimiento, creo que habría que considerar seriamente un framework jaja
Opiniones en Hacker News
Es importante documentar las funciones existentes. Por muy excelente que sea una plataforma de web scraping, no sirve de mucho si solo sus autores la entienden
tiered_proxy_urls: list[list[str]] | None = NoneGracias a Apify/Crawlee. Como usuario de Node.js desde hace mucho tiempo, esta biblioteca ha sido la que mejor me ha funcionado
Descubrí Crawlee mientras buscaba un stack para un proyecto. Quería una biblioteca de Python, pero usé Crawlee con Typescript y terminé el proyecto en una semana
Me pregunto en qué se diferencia de Scrapy
Me pregunto cuál sería la razón para cambiar desde otras bibliotecas. Construí mi propio crawler, pero no encontré nada particularmente único
El código Python moderno se ve genial
const data = await crawler.get_data()parece Javascript. Da la impresión de que falta un guion bajoSugiero llevar más fragmentos de código de los casos de prueba a los ejemplos de la documentación. Buen trabajo
Las herramientas de scraping siempre son bienvenidas. Pienso probarla en un proyecto personal. Gracias a la IA, el scraping actual se parece a vender palas en una fiebre del oro