Este repositorio es una colección curada de scripts, técnicas y experimentos para scrapear sitios web y preparar datos para WordPress (principalmente WooCommerce) usando WP All Import.
No es un framework. Es un arsenal de herramientas tácticas para resolver problemas reales de extracción e importación de datos.
El propósito único es reducir la fricción entre la extracción de datos (web scraping) y su publicación en WordPress.
Todo script aquí busca:
- Extraer datos de forma resiliente.
- Normalizar el contenido (HTML limpio, atributos estandarizados).
- Generar CSVs perfectos para WP All Import.
El flujo estándar para cualquier integración es:
graph LR
A[Target Web] -->|Scraping| B(Raw Data / JSON)
B -->|Parsing & Limpieza| C{Normalización}
C -->|Estructuración| D[WP Import CSV]
D -->|WP All Import| E[WordPress / WooCommerce]
- Uso de Python (Requests, BeautifulSoup, Selenium) o Node.js (Puppeteer/Playwright).
- Evasión de bloqueos mediante headers, rotación de identidad y delays.
- Extracción de datos crudos.
- Limpieza de HTML (remover clases, estilos, scripts).
- Estandarización de precios (formato decimal punto).
- Descarga y mapeo de imágenes.
- Reconstrucción de jerarquías (Padre/Variaciones).
- Formato UTF-8.
- Estructura compatible con WooCommerce (SKU, Type, Regular Price, Attributes).
- Filas de variaciones ordenadas inmediatamente después de su padre (idealmente).
/scripts: Scripts reutilizables y templates.woocommerce_scraper_template.py: Plantilla robusta para scraping directo a CSV.csv_normalizer.py: Utilidad para limpiar y remapear CSVs sucios.
/cases: Casos de estudio reales y "sucios" de proyectos pasados (referencia).
Scraper CLI profesional con rotación de identidad, manejo de errores y formato WPAI estricto.
Uso:
python scripts/woocommerce_scraper_template.py urls.txt output.csv --resume --limit 100Características:
- Resume Capability: Crea un archivo
.processedcon hashes de URLs para detener y continuar. - Logging:
scraper_log.txtpara errores detallados, consola limpia. - WPAI Ready: Genera columnas estandar (
sku,product_type,images,attributes).
Herramienta para arreglar CSVs generados por herramientas de terceros o scrapers antiguos.
Uso:
python scripts/csv_normalizer.py input.csv output.csv --map mapping.jsonFeatures:
- Encoding Fix: Fuerza UTF-8.
- Text Clean: Limpia entidades HTML, espacios dobles y comillas raras.
- Remapping: Usa un JSON para renombrar columnas (
{"old_name": "new_name"}).
Para productos variables, seguimos este patrón estándar:
- Parent Row:
Type=variable,SKU=P001,Name=Camiseta,Parent= - Child Row:
Type=variation,SKU=P001-RED,Name=Camiseta - Roja,Parent=P001,Attribute 1=Color,Value 1=Red
- Antibot: Usar siempre User-Agent rotativos. Si el sitio es duro, delegar la petición a Oxylabs/ScrapingBee, no pelear con el JS.
- Selectores: Mapear selectores CSS en un diccionario al inicio del script para fácil mantenimiento.
- Limpieza HTML: Nunca inyectar HTML sucio de otro sitio. Usar
lxmlo utilidades de limpieza para dejar solop,h2,ul,li,strong. - Imágenes: WP All Import puede descargar imágenes desde URLs. Asegurar que las URLs sean accesibles y públicas.
Estos scripts son herramientas de "laboratorio". Úsalos bajo tu responsabilidad y ajustándolos a cada caso. Respetar siempre robots.txt y términos de servicio donde aplique.