Last translated: 16 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

🚀🤖 Crawl4AI: Rastreador Web y Extractor de Datos Compatible con LLMs de Código Abierto.

unclecode%2Fcrawl4ai | Trendshift

GitHub Stars GitHub Forks

PyPI version Python Version Downloads

License Code style: black Security: bandit Contributor Covenant

Crawl4AI es el repositorio #1 en tendencia de GitHub, mantenido activamente por una comunidad vibrante. Ofrece un rastreo web ultrarrápido y listo para IA, diseñado para LLMs, agentes de IA y pipelines de datos. De código abierto, flexible y construido para rendimiento en tiempo real, Crawl4AI empodera a los desarrolladores con velocidad, precisión y facilidad de despliegue sin igual.

✨ Consulta la última actualización v0.6.0

🎉 ¡La versión 0.6.0 ya está disponible! Esta versión candidata introduce Rastreo Consciente del Mundo con configuración geográfica y de idioma, extracción de Tablas a DataFrame, agrupación de navegadores con precalentamiento, captura de tráfico de red y consola, integración MCP para herramientas de IA, ¡y un despliegue Docker completamente renovado! Lee las notas de la versión →

🤓 Mi Historia Personal

Mi viaje con las computadoras comenzó en la infancia cuando mi padre, un científico de la computación, me presentó una computadora Amstrad. Esos primeros días despertaron una fascinación por la tecnología, llevándome a estudiar ciencias de la computación y especializarme en PNL durante mis estudios de posgrado. Fue durante este tiempo que me sumergí por primera vez en el rastreo web, construyendo herramientas para ayudar a los investigadores a organizar artículos y extraer información de publicaciones, una experiencia desafiante pero gratificante que perfeccionó mis habilidades en extracción de datos.

Avanzando rápidamente a 2023, estaba trabajando en una herramienta para un proyecto y necesitaba un rastreador para convertir una página web en markdown. Mientras exploraba soluciones, encontré una que afirmaba ser de código abierto pero requería crear una cuenta y generar un token de API. Peor aún, resultó ser un modelo SaaS que cobraba $16, y su calidad no cumplía con mis estándares. Frustrado, me di cuenta de que este era un problema más profundo. Esa frustración se convirtió en modo turbo de enojo, y decidí construir mi propia solución. En solo unos días, creé Crawl4AI. Para mi sorpresa, se volvió viral, ganando miles de estrellas en GitHub y resonando con una comunidad global.

Hice Crawl4AI de código abierto por dos razones. Primero, es mi manera de devolver a la comunidad de código abierto que me ha apoyado a lo largo de mi carrera. Segundo, creo que los datos deberían ser accesibles para todos, no bloqueados detrás de muros de pago o monopolizados por unos pocos. El acceso abierto a los datos sienta las bases para la democratización de la IA, una visión donde las personas pueden entrenar sus propios modelos y tomar posesión de su información. Esta biblioteca es el primer paso en un viaje más grande para crear la mejor herramienta de extracción y generación de datos de código abierto que el mundo haya visto, construida colaborativamente por una comunidad apasionada.

Gracias a todos los que han apoyado este proyecto, lo han usado y compartido comentarios. Su aliento me motiva a soñar aún más grande. Únanse, reporten problemas, envíen PRs o corran la voz. Juntos, podemos construir una herramienta que realmente empodere a las personas para acceder a sus propios datos y remodelar el futuro de la IA.

🧐 ¿Por qué Crawl4AI?

  1. Construido para LLMs: Crea Markdown inteligente y conciso optimizado para aplicaciones RAG y fine-tuning.
  2. Ultra Rápido: Entrega resultados 6 veces más rápido con rendimiento en tiempo real y rentable.
  3. Control Flexible del Navegador: Ofrece gestión de sesiones, proxies y hooks personalizados para un acceso fluido a los datos.
  4. Inteligencia Heurística: Utiliza algoritmos avanzados para extracción eficiente, reduciendo la dependencia de modelos costosos.
  5. Código Abierto y Desplegable: Totalmente de código abierto sin claves de API, listo para Docker e integración en la nube.
  6. Comunidad Activa: Mantenido activamente por una comunidad vibrante y el repositorio #1 en tendencia de GitHub.

🚀 Inicio Rápido

  1. Instala Crawl4AI:
# Install the package
pip install -U crawl4ai

# For pre release versions
pip install crawl4ai --pre

# Run post-installation setup
crawl4ai-setup

# Verify your installation
crawl4ai-doctor

Si encuentras algún problema relacionado con el navegador, puedes instalarlo manualmente:

python -m playwright install --with-deps chromium
  1. Ejecuta un rastreo web simple con Python:
import asyncio
from crawl4ai import *

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://www.nbcnews.com/business",
        )
        print(result.markdown)

if __name__ == "__main__":
    asyncio.run(main())
  1. O usa la nueva interfaz de línea de comandos:
# Basic crawl with markdown output
crwl https://www.nbcnews.com/business -o markdown

# Deep crawl with BFS strategy, max 10 pages
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

# Use LLM extraction with a specific question
crwl https://www.example.com/products -q "Extract all product prices"

✨ Características

📝 Generación de Markdown
  • 🧹 Markdown Limpio: Genera Markdown limpio y estructurado con formato preciso.
  • 🎯 Markdown Ajustado: Filtrado basado en heurísticas para eliminar ruido y partes irrelevantes para un procesamiento amigable con IA.
  • 🔗 Citas y Referencias: Convierte enlaces de página en una lista de referencias numerada con citas limpias.
  • 🛠️ Estrategias Personalizadas: Los usuarios pueden crear sus propias estrategias de generación de Markdown adaptadas a necesidades específicas.
  • 📚 Algoritmo BM25: Emplea filtrado basado en BM25 para extraer información central y eliminar contenido irrelevante.
📊 Extracción de Datos Estructurados
  • 🤖 Extracción Impulsada por LLM: Soporta todos los LLMs (de código abierto y propietarios) para extracción de datos estructurados.
  • 🧱 Estrategias de Fragmentación: Implementa fragmentación (basada en temas, regex, nivel de oración) para procesamiento de contenido dirigido.
  • 🌌 Similitud de Coseno: Encuentra fragmentos de contenido relevantes basados en consultas de usuario para extracción semántica.
  • 🔎 Extracción Basada en CSS: Extracción rápida de datos basada en esquemas usando XPath y selectores CSS.
  • 🔧 Definición de Esquema: Define esquemas personalizados para extraer JSON estructurado de patrones repetitivos.
🌐 Integración con Navegador
  • 🖥️ Navegador Gestionado: Usa navegadores propiedad del usuario con control total, evitando detección de bots.
  • 🔄 Control Remoto del Navegador: Conéctate al Protocolo de Herramientas de Desarrollo de Chrome para extracción de datos remota a gran escala.
  • 👤 Perfilador de Navegador: Crea y gestiona perfiles persistentes con estados de autenticación guardados, cookies y configuraciones.
  • 🔒 Gestión de Sesiones: Preserva estados del navegador y reutilízalos para rastreo de múltiples pasos.
  • 🧩 Soporte para Proxies: Conéctate sin problemas a proxies con autenticación para acceso seguro.
  • ⚙️ Control Total del Navegador: Modifica encabezados, cookies, agentes de usuario y más para configuraciones de rastreo personalizadas.
  • 🌍 Soporte para Múltiples Navegadores: Compatible con Chromium, Firefox y WebKit.
  • 📐 Ajuste Dinámico de Viewport: Ajusta automáticamente el viewport del navegador para coincidir con el contenido de la página, asegurando renderizado completo y captura de todos los elementos.
🔎 Rastreo y Extracción
  • 🖼️ Soporte para Medios: Extrae imágenes, audio, videos y formatos de imagen responsivos como srcset y picture.
  • 🚀 Rastreo Dinámico: Ejecuta JS y espera contenido asíncrono o síncrono para extracción dinámica.
  • 📸 Capturas de Pantalla: Captura pantallas de página durante el rastreo para depuración o análisis.
  • 📂 Rastreo de Datos Crudos: Procesa HTML crudo (raw:) o archivos locales (file://) directamente.
  • 🔗 Extracción Completa de Enlaces: Extrae enlaces internos, externos y contenido de iframes incrustados.
  • 🛠️ Hooks Personalizables: Define hooks en cada paso para personalizar el comportamiento del rastreo.
  • 💾 Caché: Almacena datos en caché para mejorar la velocidad y evitar recuperaciones redundantes.
  • 📄 Extracción de Metadatos: Recupera metadatos estructurados de páginas web.
  • 📡 Extracción de Contenido de IFrames: Extracción fluida de contenido de iframes incrustados.
  • 🕵️ Manejo de Carga Diferida: Espera a que las imágenes se carguen completamente, asegurando que no se pierda contenido debido a carga diferida.
  • 🔄 Escaneo de Página Completa: Simula desplazamiento para cargar y capturar todo el contenido dinámico, perfecto para páginas con desplazamiento infinito.
🚀 Despliegue
  • 🐳 Configuración Dockerizada: Imagen Docker optimizada con servidor FastAPI para despliegue fácil.
  • 🔑 Autenticación Segura: Autenticación JWT integrada para seguridad de API.
  • 🔄 Puerta de Enlace API: Despliegue con un clic con autenticación segura de token para flujos de trabajo basados en API.
  • 🌐 Arquitectura Escalable: Diseñada para producción a gran escala y rendimiento optimizado del servidor.
  • ☁️ Despliegue en la Nube: Configuraciones listas para desplegar en plataformas en la nube principales.
🎯 Características Adicionales
  • 🕶️ Modo Sigiloso: Evita la detección de bots imitando usuarios reales.
  • 🏷️ Extracción de Contenido Basada en Etiquetas: Refina el rastreo basado en etiquetas personalizadas, encabezados o metadatos.
  • 🔗 Análisis de Enlaces: Extrae y analiza todos los enlaces para exploración detallada de datos.
  • 🛡️ Manejo de Errores: Gestión robusta de errores para ejecución sin problemas.
  • 🔐 CORS y Servicio Estático: Soporta caché basado en sistema de archivos y solicitudes cross-origin.
  • 📖 Documentación Clara: Guías simplificadas y actualizadas para incorporación y uso avanzado.
  • 🙌 Reconocimiento Comunitario: Reconoce contribuidores y pull requests para transparencia.

¡Pruébalo Ahora!

✨ Juega con esto Open In Colab

✨ Visita nuestro Sitio de Documentación

Instalación 🛠️

Crawl4AI ofrece opciones de instalación flexibles para adaptarse a varios casos de uso. Puedes instalarlo como un paquete de Python o usar Docker.

🐍 Usando pip

Elige la opción de instalación que mejor se adapte a tus necesidades:

Instalación Básica

Para tareas básicas de rastreo web y extracción:

pip install crawl4ai
crawl4ai-setup # Setup the browser

Por defecto, esto instalará la versión asíncrona de Crawl4AI, usando Playwright para rastreo web.

👉 Nota: Cuando instalas Crawl4AI, crawl4ai-setup debería instalar y configurar automáticamente Playwright. Sin embargo, si encuentras algún error relacionado con Playwright, puedes instalarlo manualmente usando uno de estos métodos:

  1. A través de la línea de comandos:

    playwright install
    
  2. Si lo anterior no funciona, prueba este comando más específico:

    python -m playwright install chromium
    

Este segundo método ha demostrado ser más confiable en algunos casos.


Instalación con Versión Síncrona

La versión síncrona está obsoleta y se eliminará en versiones futuras. Si necesitas la versión síncrona usando Selenium:

pip install crawl4ai[sync]

Instalación para Desarrollo

Para contribuidores que planean modificar el código fuente:

git clone https://github.com/unclecode/crawl4ai.git
cd crawl4ai
pip install -e .                    # Basic installation in editable mode

Instala características opcionales:

pip install -e ".[torch]"           # With PyTorch features
pip install -e ".[transformer]"     # With Transformer features
pip install -e ".[cosine]"          # With cosine similarity features
pip install -e ".[sync]"            # With synchronous crawling (Selenium)
pip install -e ".[all]"             # Install all optional features
🐳 Despliegue con Docker

🚀 ¡Ahora Disponible! ¡Nuestra implementación Docker completamente rediseñada está aquí! Esta nueva solución hace que el despliegue sea más eficiente y fluido que nunca.

Nuevas Características de Docker

La nueva implementación Docker incluye:

  • Agrupación de navegadores con precalentamiento de páginas para tiempos de respuesta más rápidos
  • Playground interactivo para probar y generar código de solicitud
  • Integración MCP para conexión directa con herramientas de IA como Claude Code
  • Puntos finales API completos incluyendo extracción HTML, capturas de pantalla, generación de PDF y ejecución de JavaScript
  • Soporte multi-arquitectura con detección automática (AMD64/ARM64)
  • Recursos optimizados con mejor gestión de memoria

Comenzando

# Pull and run the latest release candidate
docker pull unclecode/crawl4ai:0.6.0-rN # Use your favorite revision number
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN # Use your favorite revision number

# Visit the playground at http://localhost:11235/playground

Para documentación completa, consulta nuestra Guía de Despliegue Docker.


Prueba Rápida

Ejecuta una prueba rápida (funciona para ambas opciones Docker):

import requests

# Submit a crawl job
response = requests.post(
    "http://localhost:11235/crawl",
    json={"urls": "https://example.com", "priority": 10}
)
task_id = response.json()["task_id"]

# Continue polling until the task is complete (status="completed")
result = requests.get(f"http://localhost:11235/task/{task_id}")

Para más ejemplos, consulta nuestros Ejemplos Docker. Para configuración avanzada, variables de entorno y ejemplos de uso, consulta nuestra Guía de Despliegue Docker.

🔬 Ejemplos de Uso Avanzado 🔬

Puedes revisar la estructura del proyecto en el directorio https://github.com/unclecode/crawl4ai/docs/examples. Allí, puedes encontrar una variedad de ejemplos; aquí, se comparten algunos ejemplos populares.

📝 Generación Heurística de Markdown con Markdown Limpio y Ajustado
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.content_filter_strategy import PruningContentFilter, BM25ContentFilter
from crawl4ai.markdown_generation_strategy import DefaultMarkdownGenerator

async def main():
    browser_config = BrowserConfig(
        headless=True,  
        verbose=True,
    )
    run_config = CrawlerRunConfig(
        cache_mode=CacheMode.ENABLED,
        markdown_generator=DefaultMarkdownGenerator(
            content_filter=PruningContentFilter(threshold=0.48, threshold_type="fixed", min_word_threshold=0)
        ),
        # markdown_generator=DefaultMarkdownGenerator(
        #     content_filter=BM25ContentFilter(user_query="WHEN_WE_FOCUS_BASED_ON_A_USER_QUERY", bm25_threshold=1.0)
        # ),
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result = await crawler.arun(
            url="https://docs.micronaut.io/4.7.6/guide/",
            config=run_config
        )
        print(len(result.markdown.raw_markdown))
        print(len(result.markdown.fit_markdown))

if __name__ == "__main__":
    asyncio.run(main())
🖥️ Ejecutando JavaScript y Extrayendo Datos Estructurados sin LLMs
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.extraction_strategy import JsonCssExtractionStrategy
import json

async def main():
    schema = {
    "name": "KidoCode Courses",
    "baseSelector": "section.charge-methodology .w-tab-content > div",
    "fields": [
        {
            "name": "section_title",
            "selector": "h3.heading-50",
            "type": "text",
        },
        {
            "name": "section_description",
            "selector": ".charge-content",
            "type": "text",
        },
        {
            "name": "course_name",
            "selector": ".text-block-93",
            "type": "text",
        },
        {
            "name": "course_description",
            "selector": ".course-content-text",
            "type": "text",
        },
        {
            "name": "course_icon",
            "selector": ".image-92",
            "type": "attribute",
            "attribute": "src"
        }
    }
}

    extraction_strategy = JsonCssExtractionStrategy(schema, verbose=True)

    browser_config = BrowserConfig(
        headless=False,
        verbose=True
    )
    run_config = CrawlerRunConfig(
        extraction_strategy=extraction_strategy,
        js_code=["""(async () => {const tabs = document.querySelectorAll("section.charge-methodology .tabs-menu-3 > div");for(let tab of tabs) {tab.scrollIntoView();tab.click();await new Promise(r => setTimeout(r, 500));}})();"""],
        cache_mode=CacheMode.BYPASS
    )
        
    async with AsyncWebCrawler(config=browser_config) as crawler:
        
        result = await crawler.arun(
            url="https://www.kidocode.com/degrees/technology",
            config=run_config
        )

        companies = json.loads(result.extracted_content)
        print(f"Successfully extracted {len(companies)} companies")
        print(json.dumps(companies[0], indent=2))


if __name__ == "__main__":
    asyncio.run(main())
📚 Extrayendo Datos Estructurados con LLMs
import os
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode, LLMConfig
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from pydantic import BaseModel, Field

class OpenAIModelFee(BaseModel):
    model_name: str = Field(..., description="Name of the OpenAI model.")
    input_fee: str = Field(..., description="Fee for input token for the OpenAI model.")
    output_fee: str = Field(..., description="Fee for output token for the OpenAI model.")

async def main():
    browser_config = BrowserConfig(verbose=True)
    run_config = CrawlerRunConfig(
        word_count_threshold=1,
        extraction_strategy=LLMExtractionStrategy(
            # Here you can use any provider that Litellm library supports, for instance: ollama/qwen2
            # provider="ollama/qwen2", api_token="no-token", 
            llm_config = LLMConfig(provider="openai/gpt-4o", api_token=os.getenv('OPENAI_API_KEY')), 
            schema=OpenAIModelFee.schema(),
            extraction_type="schema",
            instruction="""From the crawled content, extract all mentioned model names along with their fees for input and output tokens. 
            Do not miss any models in the entire content. One extracted model JSON format should look like this: 
            {"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}."""
        ),            
        cache_mode=CacheMode.BYPASS,
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result = await crawler.arun(
            url='https://openai.com/api/pricing/',
            config=run_config
        )
        print(result.extracted_content)

if __name__ == "__main__":
    asyncio.run(main())
🤖 Usando tu Propio Navegador con Perfil de Usuario Personalizado
import os, sys
from pathlib import Path
import asyncio, time
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode

async def test_news_crawl():
    # Create a persistent user data directory
    user_data_dir = os.path.join(Path.home(), ".crawl4ai", "browser_profile")
    os.makedirs(user_data_dir, exist_ok=True)

    browser_config = BrowserConfig(
        verbose=True,
        headless=True,
        user_data_dir=user_data_dir,
        use_persistent_context=True,
    )
    run_config = CrawlerRunConfig(
        cache_mode=CacheMode.BYPASS
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        url = "ADDRESS_OF_A_CHALLENGING_WEBSITE"
        
        result = await crawler.arun(
            url,
            config=run_config,
            magic=True,
        )
        
        print(f"Successfully crawled {url}")
        print(f"Content length: {len(result.markdown)}")

✨ Actualizaciones Recientes

Aspectos Destacados de la Versión 0.6.0

  • 🌎 Rastreo Consciente del Mundo: Configura geolocalización, idioma y zona horaria para contenido auténtico específico de ubicación:

      crun_cfg = CrawlerRunConfig(
          url="https://browserleaks.com/geo",          # página de prueba que muestra tu ubicación
          locale="en-US",                              # Accept-Language y localización de UI
          timezone_id="America/Los_Angeles",           # Zona horaria de JS Date()/Intl
          geolocation=GeolocationConfig(                 # sobrescribe coordenadas GPS
              latitude=34.0522,
              longitude=-118.2437,
              accuracy=10.0,
          )
      )
    
  • 📊 Extracción de Tablas a DataFrame: Extrae tablas HTML directamente a CSV o pandas DataFrames:

      crawler = AsyncWebCrawler(config=browser_config)
      await crawler.start()
    
      try:
          # Configura parámetros de scraping
          crawl_config = CrawlerRunConfig(
              table_score_threshold=8,  # Detección estricta de tablas
          )
    
          # Ejecuta extracción de datos de mercado
          results: List[CrawlResult] = await crawler.arun(
              url="https://coinmarketcap.com/?page=1", config=crawl_config
          )
    
          # Procesa resultados
          raw_df = pd.DataFrame()
          for result in results:
              if result.success and result.media["tables"]:
                  raw_df = pd.DataFrame(
                      result.media["tables"][0]["rows"],
                      columns=result.media["tables"][0]["headers"],
                  )
                  break
          print(raw_df.head())
    
      finally:
          await crawler.stop()
    
  • 🚀 Agrupación de Navegadores: Las páginas se lanzan calientes con instancias de navegador precalentadas para menor latencia y uso de memoria

  • 🕸️ Captura de Red y Consola: Registros completos de tráfico y instantáneas MHTML para depuración:

    crawler_config = CrawlerRunConfig(
        capture_network=True,
        capture_console=True,
        mhtml=True
    )
    
  • 🔌 Integración MCP: Conéctate a herramientas de IA como Claude Code a través del Protocolo de Contexto de Modelo

    # Añade Crawl4AI a Claude Code
    claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse
    
  • 🖥️ Playground Interactivo: Prueba configuraciones y genera solicitudes API con la interfaz web integrada en http://localhost:11235//playground

  • 🐳 Despliegue Docker Renovado: Imagen Docker multi-arquitectura optimizada con mejor eficiencia de recursos

  • 📱 Sistema de Construcción Multi-etapa: Dockerfile optimizado con mejoras de rendimiento específicas por plataforma

Lee los detalles completos en nuestras Notas de la Versión 0.6.0 o consulta el CHANGELOG.

Versión Anterior: 0.5.0 Principales Novedades de la Versión

  • 🚀 Sistema de Rastreo Profundo: Explora sitios web más allá de las URLs iniciales con estrategias BFS, DFS y BestFirst
  • ⚡ Despachador Adaptativo a la Memoria: Ajusta dinámicamente la concurrencia según la memoria del sistema
  • 🔄 Múltiples Estrategias de Rastreo: Rastreadores basados en navegador y ligeros solo HTTP
  • 💻 Interfaz de Línea de Comandos: Nueva CLI crwl proporciona acceso conveniente desde terminal
  • 👤 Perfilador de Navegador: Crea y gestiona perfiles persistentes de navegador
  • 🧠 Asistente de Codificación Crawl4AI: Asistente de programación con IA
  • 🏎️ Modo de Scraping LXML: Rápido análisis HTML usando la biblioteca lxml
  • 🌐 Rotación de Proxies: Soporte integrado para cambio de proxies
  • 🤖 Filtro de Contenido LLM: Generación inteligente de markdown usando LLMs
  • 📄 Procesamiento de PDF: Extrae texto, imágenes y metadatos de archivos PDF

Consulta todos los detalles en nuestras Notas de Lanzamiento 0.5.0.

Numeración de Versiones en Crawl4AI

Crawl4AI sigue las convenciones estándar de numeración de versiones de Python (PEP 440) para ayudar a los usuarios a entender la estabilidad y características de cada lanzamiento.

Explicación de los Números de Versión

Nuestros números de versión siguen este patrón: MAYOR.MENOR.PARCHE (ej. 0.4.3)

Versiones Preliminares

Usamos diferentes sufijos para indicar etapas de desarrollo:

  • dev (0.4.3dev1): Versiones de desarrollo, inestables
  • a (0.4.3a1): Lanzamientos alpha, características experimentales
  • b (0.4.3b1): Lanzamientos beta, características completas pero necesitan pruebas
  • rc (0.4.3): Candidatos a lanzamiento, versión potencial final

Instalación

  • Instalación regular (versión estable):

    pip install -U crawl4ai
    
  • Instalar versiones preliminares:

    pip install crawl4ai --pre
    
  • Instalar versión específica:

    pip install crawl4ai==0.4.3b1
    

¿Por qué Versiones Preliminares?

Usamos versiones preliminares para:

  • Probar nuevas características en escenarios reales
  • Recopilar feedback antes de lanzamientos finales
  • Garantizar estabilidad para usuarios en producción
  • Permitir que adoptantes tempranos prueben nuevas características

Para entornos de producción, recomendamos usar la versión estable. Para probar nuevas características, puedes optar por versiones preliminares usando la bandera --pre.

📖 Documentación y Hoja de Ruta

🚨 Alerta de Actualización de Documentación: La próxima semana realizaremos una importante revisión de la documentación para reflejar actualizaciones recientes y mejoras. ¡Mantente atento para una guía más completa y actualizada!

Para la documentación actual, incluyendo instrucciones de instalación, características avanzadas y referencia de API, visita nuestro Sitio de Documentación.

Para consultar nuestros planes de desarrollo y próximas características, visita nuestra Hoja de Ruta.

📈 Tareas de Desarrollo
  • 0. Rastreador de Grafos: Navegación inteligente por sitios web usando algoritmos de búsqueda en grafos para extracción completa de páginas anidadas
  • 1. Rastreador Basado en Preguntas: Descubrimiento web y extracción de contenido guiado por lenguaje natural
  • 2. Rastreador de Conocimiento Óptimo: Rastreo inteligente que maximiza el conocimiento mientras minimiza la extracción de datos
  • 3. Rastreador Agéntico: Sistema autónomo para operaciones complejas de rastreo multi-paso
  • 4. Generador Automático de Esquemas: Convierte lenguaje natural en esquemas de extracción
  • 5. Scrapers Específicos por Dominio: Extractores preconfigurados para plataformas comunes (académicas, e-commerce)
  • 6. Índice de Incrustación Web: Infraestructura de búsqueda semántica para contenido rastreado
  • 7. Entorno Interactivo: Interfaz web para probar y comparar estrategias con asistencia de IA
  • 8. Monitor de Rendimiento: Información en tiempo real sobre operaciones del rastreador
  • 9. Integración en la Nube: Soluciones de despliegue con un clic en proveedores cloud
  • 10. Programa de Patrocinio: Sistema de soporte estructurado con beneficios por niveles
  • 11. Contenido Educativo: Serie de videos "Cómo Rastrear" y tutoriales interactivos

🤝 Contribuciones

Agradecemos contribuciones de la comunidad de código abierto. Consulta nuestras guías de contribución para más información.

Ayudaré a modificar la sección de licencia con insignias. Para el efecto de medios tonos, aquí hay una versión con él:

Aquí está la sección de licencia actualizada:

📄 Licencia y Atribución

Este proyecto está licenciado bajo la Licencia Apache 2.0 con una cláusula de atribución requerida. Consulta el archivo de Licencia Apache 2.0 para detalles.

Requisitos de Atribución

Al usar Crawl4AI, debes incluir uno de los siguientes métodos de atribución:

1. Atribución con Insignia (Recomendado)

Añade una de estas insignias a tu README, documentación o sitio web:

TemaInsignia
Tema Disco (Animado)Powered by Crawl4AI
Tema Noche (Oscuro con Neon)Powered by Crawl4AI
Tema Oscuro (Clásico)Powered by Crawl4AI
Tema Claro (Clásico)Powered by Crawl4AI

Código HTML para añadir las insignias:

<!-- Disco Theme (Animated) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-disco.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Night Theme (Dark with Neon) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-night.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Dark Theme (Classic) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-dark.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Light Theme (Classic) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-light.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Simple Shield Badge -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://img.shields.io/badge/Powered%20by-Crawl4AI-blue?style=flat-square" alt="Powered by Crawl4AI"/>
</a>

2. Atribución de Texto

Añade esta línea a tu documentación:

This project uses Crawl4AI (https://github.com/unclecode/crawl4ai) for web data extraction.

📚 Cita

Si usas Crawl4AI en tu investigación o proyecto, por favor cita:

@software{crawl4ai2024,
  author = {UncleCode},
  title = {Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub Repository},
  howpublished = {\url{https://github.com/unclecode/crawl4ai}},
  commit = {Please use the commit hash you're working with}
}

Formato de cita en texto:

UncleCode. (2024). Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper [Computer software]. 
GitHub. https://github.com/unclecode/crawl4ai

📧 Contacto

Para preguntas, sugerencias o feedback, no dudes en contactarnos:

¡Feliz Rastreo! 🕸️🚀

🗾 Misión

Nuestra misión es desbloquear el valor de los datos personales y empresariales transformando huellas digitales en activos estructurados y comerciables. Crawl4AI empodera a individuos y organizaciones con herramientas de código abierto para extraer y estructurar datos, fomentando una economía compartida de datos.

Visualizamos un futuro donde la IA se alimente de conocimiento humano real, asegurando que los creadores de datos se beneficien directamente de sus contribuciones. Al democratizar los datos y permitir un intercambio ético, estamos sentando las bases para un avance auténtico de la IA.

🔑 Oportunidades Clave
  • Capitalización de Datos: Transforma huellas digitales en activos medibles y valiosos.
  • Datos Auténticos para IA: Proporciona a los sistemas de IA conocimientos humanos reales.
  • Economía Compartida: Crea un mercado justo de datos que beneficie a los creadores.
🚀 Ruta de Desarrollo
  1. Herramientas de Código Abierto: Plataformas impulsadas por la comunidad para extracción transparente de datos.
  2. Estructuración de Activos Digitales: Herramientas para organizar y valorar conocimiento digital.
  3. Mercado Ético de Datos: Una plataforma segura y justa para intercambiar datos estructurados.

Para más detalles, consulta nuestra declaración de misión completa.

Historial de Estrellas

Gráfico de Historial de Estrellas