Skip to content
Edwin1719Public

About

Web Scraping sin código potenciado por IA. Describe en lenguaje natural qué datos necesitas y ScrapIA genera los selectores CSS automáticamente. Extrae datos de cualquier sitio web, explora su estructura y exporta a JSON, CSV o Excel desde una interfaz gráfica.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

ScrapIA — Web Scraping Inteligente con IA

Python Version License Gradio IA

Scraping sin código con IA + Exploración de sitios web — todo en una interfaz gráfica

Instalación • Uso • Características • Ejemplos


📋 Descripción

ScrapIA es una aplicación con interfaz gráfica construida sobre el framework Scrapling, diseñada para dos cosas:

  1. Extraer datos estructurados de sitios web describiéndolos en lenguaje natural — la IA genera los selectores CSS automáticamente
  2. Explorar la estructura completa de sitios web corporativos y generar un informe organizado por secciones

Todo sin escribir una sola línea de código.


✨ Características

🔍 Extracción de Datos con IA

Función Descripción
Columnas dinámicas Pide lo que quieras: "productos con nombre, precio, envío y URL" — la app genera exactamente esas columnas
Selectores auto-generados GPT-4o analiza el DOM y genera selectores CSS válidos
Validación automática Los selectores se prueban contra el HTML real antes de ejecutar
Optimizado para MercadoLibre ~100% de precisión en nombre, precio, calificación y URL

💡 Nota: En los ejemplos de este README se usa MercadoLibre como caso principal por ser uno de los e-commerce más accesibles y populares de Latinoamérica. El framework puede adaptarse a cualquier otro sitio de comercio electrónico ajustando los selectores y la configuración según la estructura de cada sitio.

🔎 Exploración de Sitios Web

Función Descripción
Crawl automático Descubre todas las páginas internas del sitio siguiendo enlaces
Clasificación por secciones Organiza páginas en: inicio, servicios, contacto, blog, precios, etc.
Informe Markdown legible Genera un reporte estructurado con títulos, previews, headings y datos de contacto
Detección de contacto Extrae automáticamente emails y teléfonos

🎯 Interfaz Gráfica con 5 Pestañas

Pestaña Función
🔍 Extraer URL + descripción + botón — el flujo principal
📊 Resultados Tabla de datos con vista previa JSON
🔧 Avanzado Selectores generados por IA + modo experto manual
📖 Guía Cuándo usar cada modo + ejemplos listos
🔎 Explorar Crawl de sitio completo con informe Markdown

🕷️ Tres Modos de Extracción

Modo Tecnología Cuándo usarlo
📄 Normal HTTP directo con curl_cffi Sitios sin protección (MercadoLibre, blogs, corporativos)
🌐 JavaScript Playwright headless Contenido dinámico (Walmart trae 6x más datos)
🥷 Anti-bloqueo Stealth + Cloudflare solver Pantalla "Just a moment..."

🔄 Regla de oro: Empieza con Normal. Si no trae datos → JavaScript. Si dice "bloqueado" → Anti-bloqueo.

📄 Paginación Automática

  • Navega entre páginas automáticamente
  • Detección del patrón ?page=N inteligente
  • Configurable hasta 50 páginas

📁 Exportación Múltiple

  • JSON / JSONL
  • CSV
  • Excel (XLSX)
  • Markdown
  • HTML

🚀 Instalación

Requisitos

  • Python 3.10+
  • pip
  • API Key de OpenAI (para detección con GPT-4o)

Instalación Rápida

cd Scrapling_new
pip install -r requirements.txt
playwright install chromium

# Configurar API Key en archivo .env:
# OPENAI_API_KEY=sk-proj-tu-key

python scrapling_new/ui/app_gradio_mj.py

La app se abre en http://127.0.0.1:7860

Instalación Mínima (solo modo Normal)

pip install gradio scrapling pandas openpyxl openai python-dotenv
python scrapling_new/ui/app_gradio_mj.py

💻 Uso

Extracción de Datos (flujo principal)

  1. Pega la URL de la página
  2. Describe qué datos quieres (ej: "productos con nombre, precio y calificación")
  3. Presiona "Extraer datos automáticamente"
  4. Revisa resultados y descarga en JSON o CSV

Exploración de Sitios

  1. Ve a la pestaña 🔎 Explorar
  2. Ingresa la URL raíz del sitio
  3. Configura páginas máximas (default: 20)
  4. Presiona "Explorar sitio"
  5. Lee el informe Markdown organizado por secciones

Modo Manual (selectores propios — sin IA)

Cuando la IA no logra identificar los selectores correctos, puedes configurarlos manualmente:

  1. Abre el sitio en tu navegador y presiona F12 (Inspeccionar elemento)
  2. Identifica los selectores CSS del contenedor y cada campo (nombre, precio, etc.)
  3. En la app, ve a 🔧 Avanzado → ⌨️ Modo experto
  4. Ingresa los selectores manualmente y presiona ▶️ Ejecutar scraping

Este modo es ideal cuando ya conoces la estructura del sitio o quieres ahorrar tokens de IA. También permite reutilizar selectores que la IA generó en una extracción anterior.


📖 Ejemplos

Extracción: MercadoLibre (caso principal)

URL: https://www.mercadolibre.com.co/ofertas
Modo: Normal
Consulta: "Productos con nombre, precio, calificación y URL"
Resultado: 54 productos/página ✅ 100% campos completos

También funciona con variaciones de la consulta:

  • "Productos con nombre, precio, envío gratis y URL"
  • "Productos con titulo, costo, estrellas y enlace"
  • "Productos con nombre, descuento, precio final y calificacion"

Exploración: Sitio Corporativo

URL: https://www.databiq.com
Resultado: 9 páginas descubiertas en 4 secciones

🏠 Inicio (2 páginas)
🛠️ Servicios (5 páginas: ML, IA, Visualización, Automatización)
📝 Blog (1 página)
📞 Contacto (1 página)

🏗️ Arquitectura

Scrapling_new/
├── scrapling_new/
│   ├── core/
│   │   ├── adapter.py              # Adaptador unificado de fetchers
│   │   ├── crawler.py              # Crawler de sitios + informe Markdown
│   │   ├── html_analyzer.py        # Analizador DOM + contexto enriquecido
│   │   ├── llm_service.py          # Integración con GPT-4o
│   │   ├── selector_validator.py   # Validación de selectores CSS
│   │   ├── config.py               # Configuraciones
│   │   └── fetcher_worker.py       # Worker subprocess (Windows)
│   ├── ui/
│   │   ├── app_gradio.py           # App simple (selectores manuales)
│   │   └── app_gradio_mj.py        # App principal con IA (5 pestañas)
│   └── utils/
│       ├── exporter.py             # Exportador multi-formato
│       └── helpers.py              # Validación URL, limpieza texto
├── examples/                       # Ejemplos de uso por script
└── tests/                          # Tests unitarios

📊 Rendimiento

Sitio Modo Items Completitud
MercadoLibre Normal 54/pág ✅ 100%
Databiq (explorar) Normal 9 págs ✅ Informe completo

MercadoLibre se usa como referencia principal por ser uno de los e-commerce más accesibles y populares de Latinoamérica. El framework puede adaptarse a otros sitios ajustando selectores y configuración según la estructura de cada sitio.


🔧 Solución de Problemas

Problema Solución
"Error al llamar a GPT-4o" Verifica OPENAI_API_KEY en .env
0 items extraídos Cambia de modo (Normal → JavaScript → Anti-bloqueo)
Campos vacíos Revisa selectores en pestaña 🔧 Avanzado
Scraping lento Usa modo Normal si el sitio no requiere JS

📝 Licencia

BSD — ver archivo LICENSE


🙏 Agradecimientos


🤝 Contribuciones

  1. Fork → 2. Rama feature → 3. Commit → 4. Push → 5. Pull Request

Hecho con ❤️ para la comunidad de Web Scraping

About

Web Scraping sin código potenciado por IA. Describe en lenguaje natural qué datos necesitas y ScrapIA genera los selectores CSS automáticamente. Extrae datos de cualquier sitio web, explora su estructura y exporta a JSON, CSV o Excel desde una interfaz gráfica.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages