Home
Login

Herramienta de web scraping y extracción de datos de código abierto y alto rendimiento optimizada para LLM y agentes de IA

Apache-2.0Python 46.0kunclecode Last Updated: 2025-06-18

Crawl4AI - Rastreador web inteligente de código abierto optimizado para LLM

Resumen del proyecto

Crawl4AI es un rastreador web de alta velocidad y listo para IA, diseñado a medida para LLM, agentes de IA y conductos de datos. El proyecto es completamente de código abierto, flexible y construido para un rendimiento en tiempo real, proporcionando a los desarrolladores una velocidad, precisión y facilidad de implementación sin igual.

Características principales

🤖 Construido para LLM

  • Genera Markdown inteligente y limpio optimizado para aplicaciones RAG y de ajuste fino.
  • Proporciona contenido estructurado y limpio, adecuado para el procesamiento de modelos de IA.
  • Admite todos los LLM (de código abierto y propietarios) para la extracción de datos estructurados.

⚡ Velocidad ultrarrápida

  • Ofrece resultados 6 veces más rápidos, con un rendimiento rentable en tiempo real.
  • Basado en una arquitectura asíncrona, que admite el procesamiento concurrente a gran escala.
  • Programador adaptable a la memoria que ajusta dinámicamente la concurrencia según la memoria del sistema.

🌐 Control flexible del navegador

  • Gestión de sesiones, soporte de proxy y ganchos personalizados.
  • Admite el navegador propio del usuario, control total, evitando la detección de robots.
  • Gestión de perfiles de navegador, guardando el estado de autenticación, las cookies y la configuración.
  • Soporte para múltiples navegadores: Chromium, Firefox y WebKit.

🧠 Inteligencia heurística

  • Utiliza algoritmos avanzados para una extracción eficiente, reduciendo la dependencia de modelos costosos.
  • Filtrado con algoritmo BM25, extrayendo información central y eliminando contenido irrelevante.
  • Limpieza inteligente de contenido y procesamiento de reducción de ruido.

Módulos de funciones principales

📝 Generación de Markdown

  • Markdown limpio: Genera Markdown estructurado con formato preciso.
  • Markdown adaptado: Basado en filtrado heurístico, elimina ruido y partes irrelevantes.
  • Citas y referencias: Convierte los enlaces de la página en una lista de referencias numeradas con citas limpias.
  • Estrategias personalizadas: Los usuarios pueden crear estrategias de generación de Markdown para necesidades específicas.

📊 Extracción de datos estructurados

  • Extracción impulsada por LLM: Admite todos los LLM para la extracción de datos estructurados.
  • Estrategias de fragmentación: Implementa la fragmentación (basada en temas, expresiones regulares, nivel de oración) para el procesamiento de contenido objetivo.
  • Similitud coseno: Encuentra bloques de contenido relevantes basados en consultas de usuario para la extracción semántica.
  • Extracción de selectores CSS: Utiliza XPath y selectores CSS para la extracción rápida de patrones.
  • Definición de esquemas: Define esquemas personalizados para extraer JSON estructurado de patrones repetitivos.

🔎 Funciones de rastreo y captura

  • Soporte de medios: Extrae imágenes, audio, video y formatos de imagen responsivos.
  • Rastreo dinámico: Ejecuta JavaScript y espera la extracción de contenido dinámico asíncrono/síncrono.
  • Función de captura de pantalla: Captura capturas de pantalla de la página durante el rastreo para depuración o análisis.
  • Rastreo de datos sin procesar: Procesa directamente HTML sin procesar o archivos locales.
  • Extracción completa de enlaces: Extrae enlaces internos, externos y contenido iframe incrustado.
  • Ganchos personalizables: Define ganchos en cada paso para personalizar el comportamiento del rastreador.
  • Mecanismo de caché: Almacena en caché los datos para mejorar la velocidad y evitar la obtención repetida.
  • Procesamiento de carga diferida: Espera a que las imágenes se carguen por completo, asegurando que no se omita contenido debido a la carga diferida.

🚀 Implementación e integración

  • Configuración Dockerizada: Imagen Docker optimizada, con servidor FastAPI, para facilitar la implementación.
  • Autenticación segura: Autenticación de token JWT incorporada para garantizar la seguridad de la API.
  • Puerta de enlace API: Implementación con un solo clic, con flujo de trabajo API con autenticación de token seguro.
  • Arquitectura escalable: Diseñada para la producción a gran escala, optimizando el rendimiento del servidor.
  • Implementación en la nube: Proporciona configuraciones de implementación listas para usar para las principales plataformas en la nube.

Instalación

Instalación del paquete Python

pip install -U crawl4ai

crawl4ai-setup

crawl4ai-doctor

Implementación de Docker

docker pull unclecode/crawl4ai:0.6.0-rN
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN

# webUI:http://localhost:11235/playground

Ejemplos de uso básico

Rastreo web simple

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())

Interfaz de línea de comandos

crwl https://www.nbcnews.com/business -o markdown

crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

crwl https://www.example.com/products -q "Extract all product prices"

Extracción de datos estructurados LLM

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(
            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())

Características de la última versión (v0.6.0)

🌍 Rastreo con conciencia mundial

Establezca la ubicación geográfica, el idioma y la zona horaria para obtener contenido específico de la región real:

run_config = CrawlerRunConfig(
    url="https://browserleaks.com/geo",
    locale="en-US",
    timezone_id="America/Los_Angeles",
    geolocation=GeolocationConfig(
        latitude=34.0522,
        longitude=-118.2437,
        accuracy=10.0,
    )
)

📊 Extracción de tablas a DataFrame

Extraiga directamente tablas HTML como CSV o pandas DataFrame:

results = await crawler.arun(
    url="https://coinmarketcap.com/?page=1",
    config=crawl_config
)

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

🚀 Agrupación de navegadores

Utilice instancias de navegador precalentadas al iniciar la página, reduciendo la latencia y el uso de memoria.

🔌 Integración MCP

Conéctese a herramientas de IA como Claude Code a través del Protocolo de contexto del modelo:

claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse

Arquitectura técnica

Componentes principales

  • Motor de rastreo asíncrono: Arquitectura asíncrona de alto rendimiento basada en Playwright.
  • Estrategias de filtrado de contenido: Múltiples algoritmos de filtrado, incluidos filtros de recorte y filtros BM25.
  • Estrategias de extracción: Admite selectores CSS, LLM y estrategias de extracción personalizadas.
  • Generador de Markdown: Conversión inteligente de contenido a formato Markdown compatible con IA.
  • Gestión de navegadores: Gestión completa del ciclo de vida del navegador y control de sesiones.

Métodos de extracción admitidos

  1. Extracción de selectores CSS: Extracción de datos estructurados rápida y precisa.
  2. Extracción LLM: Utiliza modelos de lenguaje grandes para la comprensión inteligente del contenido.
  3. Ejecución de JavaScript: Procesamiento e interacción de contenido dinámico.
  4. Expresiones regulares: Coincidencia de patrones y procesamiento de texto.
  5. Selectores XPath: Localización avanzada de elementos DOM.

Ventajas de rendimiento

  • Aumento de velocidad de 6 veces: En comparación con las herramientas de rastreo tradicionales.
  • Optimización de memoria: Gestión inteligente de la memoria y recolección de basura.
  • Procesamiento concurrente: Admite el rastreo concurrente de miles de URL.
  • Mecanismo de caché: El almacenamiento en caché inteligente reduce las solicitudes repetidas.
  • Gestión de recursos: Asignación y limitación de recursos adaptables.

Casos de uso

Ciencia de datos e investigación

  • Recopilación de artículos académicos y datos de investigación.
  • Investigación de mercado y análisis de la competencia.
  • Minería de datos de redes sociales.

IA y aprendizaje automático

  • Recopilación y preprocesamiento de datos de entrenamiento.
  • Adquisición de contenido del sistema RAG.
  • Construcción de gráficos de conocimiento.

Inteligencia empresarial

  • Monitoreo y comparación de precios.
  • Monitoreo de noticias y sentimiento.
  • Agregación de datos empresariales.

Gestión de contenido

  • Migración y copia de seguridad de sitios web.
  • Agregación y distribución de contenido.
  • Análisis y optimización SEO.

Hoja de ruta de desarrollo

  • Rastreador de gráficos: Utiliza algoritmos de búsqueda de gráficos para el recorrido inteligente de sitios web.
  • Rastreador impulsado por problemas: Descubrimiento de páginas web y extracción de contenido impulsados por lenguaje natural.
  • Rastreador óptimo para el conocimiento: Maximiza la adquisición de conocimiento al tiempo que minimiza la extracción de datos.
  • Rastreador de agentes: Sistema autónomo para operaciones de rastreo complejas de varios pasos.
  • Generador de esquemas automatizado: Convierte el lenguaje natural en esquemas de extracción.
  • Rastreadores específicos del dominio: Extractores preconfigurados para plataformas comunes.

Comunidad y soporte

Crawl4AI cuenta con el apoyo de una comunidad de código abierto activa, y agradece las contribuciones de código, los informes de problemas y las sugerencias. El proyecto sigue la licencia Apache 2.0, es completamente de código abierto y de uso gratuito.

Resumen

Crawl4AI representa los últimos avances en la tecnología de rastreo web, especialmente en el contexto de la era de la IA. No solo proporciona todas las funciones de un rastreador tradicional, sino que también está optimizado específicamente para las aplicaciones de IA modernas, lo que lo convierte en una opción ideal para científicos de datos, investigadores de IA y desarrolladores. A través de sus características de código abierto y su comunidad activa, Crawl4AI está impulsando la democratización y la estandarización de la tecnología de extracción de datos web.