Web scraping for machine learning - how to build quality training datasets - DataImpulse

Un modelo de aprendizaje automático es tan bueno como los datos de los que aprende, y para la mayoría de los equipos esos datos provienen de la web. La recopilación de datos para aprendizaje automático —reunir, limpiar y estructurar ejemplos del mundo real en un conjunto de datos de entrenamiento— es donde se gana o se pierde gran parte de la calidad del modelo. Esta guía recorre el web scraping para aprendizaje automático de principio a fin: cómo crear un conjunto de datos de entrenamiento de calidad, qué significa “calidad”, el proceso paso a paso, la limpieza que más importa, el límite legal y por qué la recopilación a escala funciona con proxies.

Soy Andrii Byzov, AI-Native Fractional CMO que crea pipelines de datos web para ML y analítica. A continuación: las cualidades del conjunto de datos que mejoran el rendimiento del modelo, un flujo de trabajo práctico de scraping a conjunto de datos con código, y cómo los proxies residenciales mantienen la recopilación escalable y diversa.


Datos clave

  • La calidad, la deduplicación y la precisión de las etiquetas suelen importar más que el volumen bruto. Un conjunto de datos limpio, diverso y bien etiquetado puede entrenar un mejor modelo que uno más grande pero ruidoso, aunque la escala sigue ayudando una vez que la calidad está controlada.
  • La web es una fuente común para muchos conjuntos de datos de ML: texto, imágenes, precios, reseñas, listados; recopilados mediante scraping cuando no hay una API, feed con licencia o conjunto de datos abierto que se ajuste.
  • Para tareas sensibles a la ubicación geográfica, usa recopilación consciente de la región. Cuando el idioma, los precios o la disponibilidad varían según la ubicación, extraer ejemplos de muchas regiones (mediante proxies con segmentación geográfica) evita un conjunto de datos sesgado.
  • El scraping de alto volumen en sitios con límites de tasa suele usar proxies. Una sola IP queda bloqueada, por lo que las grandes recopilaciones se apoyan en IPs residenciales rotativas, pero los proxies no invalidan los términos del sitio.
  • La forma en que obtuviste los datos importa legalmente. En Bartz v. Anthropic (2025), el tribunal sostuvo que entrenar con libros adquiridos legalmente constituía uso legítimo según esos hechos, pero rechazó el uso legítimo para crear una biblioteca a partir de copias pirateadas: la procedencia forma parte del cumplimiento.

¿Qué hace que un conjunto de datos de entrenamiento sea bueno?

Antes de extraer cualquier dato, define qué objetivo buscas. Un conjunto de datos de entrenamiento de calidad tiene cinco características:

  • Relevancia — los ejemplos coinciden con la tarea y con la distribución que tu modelo verá en producción.
  • Diversidad — fuentes, regiones y casos límite variados, para que el modelo generalice en lugar de memorizar una sola porción.
  • Etiquetas limpias — anotaciones precisas y consistentes; el ruido en las etiquetas limita la precisión que puedes alcanzar.
  • Equilibrio — clases y segmentos representados en proporciones sensatas, no dominados por lo que haya sido más fácil de extraer.
  • Actualidad — lo suficientemente reciente como para que los patrones sigan siendo válidos, con un plan para actualizarlo a medida que el mundo cambia.

La mayoría de los problemas de “más datos no ayudaron” se remontan a que una de estas características es débil — por lo general, duplicación, ruido en las etiquetas o un conjunto de datos sesgado hacia una sola fuente. Este es el enfoque de esta guía; para la perspectiva de compra de proxies, consulta best proxies for ML training, y para conocer errores comunes, consulta mistakes teams repeat collecting AI training data.


Cómo crear un conjunto de datos de entrenamiento mediante web scraping

Paso 1. Define el esquema y las etiquetas. Decide los campos exactos y el conjunto de etiquetas antes de recopilar: qué contiene cada ejemplo y cómo está etiquetado. Trabajar hacia atrás a partir de la tarea del modelo evita recopilar datos que no puedes usar.

Paso 2. Obtén datos de fuentes y extráelos a escala. Identifica los sitios que contienen tus ejemplos y extráelos, enrutados a través de proxies para obtener volumen y diversidad regional. Etiqueta cada ejemplo con su fuente y etiqueta mientras lo recopilas.



import requests
from bs4 import BeautifulSoup

HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                         "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}
# Rotating residential proxies: scale collection without IP blocks, and pull
# region-diverse examples so the dataset isn't skewed to one location.
proxies = {"http":  "http://LOGIN__cr.us;sid.ml1:[email protected]:823",
           "https": "http://LOGIN__cr.us;sid.ml1:[email protected]:823"}

def collect(urls, label):
    """Scrape raw text examples and tag each with its source + label."""
    rows = []
    for url in urls:
        try:
            r = requests.get(url, headers=HEADERS, proxies=proxies, timeout=30)
            r.raise_for_status()
        except requests.RequestException:
            continue
        text = BeautifulSoup(r.text, "html.parser").get_text(" ", strip=True)
        rows.append({"text": text, "label": label, "source": url})
    return rows






















Paso 3. Limpia y elimina duplicados. Los datos sin procesar extraídos mediante scraping son ruidosos y están llenos de duplicados, y los duplicados son la ruta más rápida hacia un modelo sesgado y sobreajustado. Elimina muestras vacías y demasiado cortas, normaliza el texto y elimina duplicados exactos (y casi duplicados) antes que cualquier otra cosa.



import hashlib, re

def clean(t):
    return re.sub(r"\s+", " ", t).strip().lower()

def dedup(rows, min_len=40):
    """Drop empties, too-short samples, and exact duplicates — noisy,
    duplicated data is the fastest way to a biased, overfit model."""
    seen, out = set(), []
    for row in rows:
        text = row["text"]
        if not text or len(text) < min_len:
            continue
        key = hashlib.sha1(clean(text).encode()).hexdigest()
        if key in seen:
            continue
        seen.add(key)
        out.append(row)
    return out

urls = ["https://example.com/a", "https://example.com/b"]   # your source list
dataset = dedup(collect(urls, label="positive"))
print(f"{len(dataset)} deduplicated examples")























Paso 4. Etiquetar y estructurar. Aplica etiquetas consistentes — de forma programática cuando puedas (supervisión débil, heurísticas), con revisión humana sobre una muestra para medir la calidad de las etiquetas. Almacena el dataset en un formato estructurado y versionado (JSONL/Parquet) para que puedas reproducir las ejecuciones de entrenamiento.

Paso 5. Validar la calidad. Revisa el balance de clases, la distribución de fuentes y los sesgos evidentes antes del entrenamiento. Una auditoría rápida — cuántos ejemplos hay por clase, por región, por fuente — detecta el sesgo que deteriora silenciosamente el rendimiento del modelo.


Por qué los proxies son importantes para la recopilación de datos de ML

Dos problemas hacen que la recopilación de datos de machine learning a escala falle sin proxies. Volumen: los conjuntos de datos de entrenamiento necesitan de miles a millones de ejemplos, y los sitios limitan la tasa de solicitudes y bloquean el rastreo agresivo; una sola IP queda bloqueada rápidamente. Diversidad: si todos los ejemplos provienen de una sola ubicación, el conjunto de datos hereda ese sesgo, por lo que conviene obtener ejemplos de muchas regiones. DataImpulse residential proxies ($1/GB, rotativos, 195 países) ayudan con ambos aspectos: un gran pool rotativo sostiene el volumen, y la segmentación geográfica obtiene ejemplos diversos por región para tareas sensibles a la ubicación, aunque los proxies ayudan a recopilar datos, no anulan los términos de un sitio. Para ver el panorama más amplio sobre los datos recopilados de la web, consulta nuestra guía sobre alternative data.

¿Es legal extraer datos para entrenar ML?

La recopilación y el entrenamiento son dos cuestiones legales separadas. Recopilación: se aplican las reglas habituales: los datos públicos y no personales suelen implicar menor riesgo, pero aun así depende de los derechos de autor, los términos del sitio, los controles de acceso y la legislación de privacidad; evita el contenido que requiere inicio de sesión, los datos personales y eludir controles de acceso. Entrenamiento: en Bartz v. Anthropic (2025), un tribunal de EE. UU. determinó que entrenar con libros adquiridos legalmente constituía uso legítimo bajo esos hechos, pero rechazó el uso legítimo para crear una biblioteca a partir de copias pirateadas; por lo tanto, cómo obtuviste los datos importa tanto como lo que haces con ellos. Mantén una procedencia limpia, respeta robots.txt y los términos del sitio, y consulta con asesoría legal para un modelo comercial. Para ver el marco completo, consulta si el web scraping es legal. Esta es información general, no asesoría legal.


Preguntas frecuentes

¿Qué es la recopilación de datos para machine learning?

Es el proceso de recopilar, limpiar y estructurar ejemplos del mundo real en un conjunto de datos con el que un modelo pueda entrenarse. Para la mayoría de los equipos, la fuente principal es la web pública: texto, imágenes, precios, reseñas, listados, recopilados mediante scraping cuando no existe una API ni un feed con licencia, y luego deduplicados, etiquetados y validados.

¿Cuántos datos necesito para entrenar un modelo?

Depende de la tarea y del modelo, pero la calidad y la diversidad importan más que el volumen bruto. Un conjunto de datos más pequeño, limpio, bien equilibrado y bien etiquetado suele superar a uno más grande pero ruidoso. Enfócate en eliminar duplicados y ruido en las etiquetas, y en cubrir los casos que tu modelo verá en producción antes de perseguir volumen.

¿Por qué la deduplicación es tan importante para los datos de entrenamiento?

Los duplicados sobreponderan todo lo que se repite, lo que sesga el modelo e infla las puntuaciones de evaluación (el mismo ejemplo puede terminar tanto en los conjuntos de entrenamiento como de prueba). Eliminar duplicados exactos y casi duplicados es uno de los pasos de limpieza de mayor impacto: mejora la generalización y hace que tus métricas sean confiables.

¿Necesito proxies para hacer scraping de datos de entrenamiento de ML?

Para scraping de alto volumen en sitios que limitan la frecuencia por IP, por lo general sí: crear un conjunto de datos implica muchas solicitudes, y una sola IP se bloquea rápido. Los proxies residenciales rotativos sostienen el volumen y te permiten obtener ejemplos diversos por región, aunque no invalidan los términos de un sitio, así que recopila de forma responsable. (Las APIs, los feeds con licencia o los conjuntos de datos abiertos como Common Crawl a veces pueden evitar el scraping por completo).

¿Es legal hacer scraping de datos para entrenar un modelo?

La recopilación y el entrenamiento son cuestiones separadas. Recopilar datos públicos y no personales suele ser de menor riesgo (no queda automáticamente claro: los derechos de autor, los ToS, los controles de acceso y las leyes de privacidad siguen aplicando); evita inicios de sesión, datos personales y eludir controles. Para el entrenamiento, Bartz v. Anthropic (2025) determinó que entrenar con libros adquiridos legalmente era uso justo según esos hechos, pero lo rechazó para una biblioteca pirateada: la procedencia importa. Respeta los términos del sitio y consulta asesoría legal para uso comercial. No es asesoría legal.


Conclusión

Crear un dataset de entrenamiento de calidad es un proceso, no una descarga: define el esquema, extrae datos de las fuentes correctas a escala, deduplica y limpia rigurosamente, etiqueta de forma consistente y valida el equilibrio y los sesgos. La web es donde vive la mayor parte de los datos, por lo que la capa de recopilación —geográficamente diversa, de alto volumen y sin bloqueos— es lo que hace posible todo lo demás, y eso es lo que proporcionan los proxies residenciales. Mantén una procedencia clara y el marco legal siempre presente, y tu recopilación de datos para machine learning producirá datasets de los que un modelo realmente pueda aprender. Para la infraestructura, consulta best proxies for ML training y best proxies for web scraping.

Última actualización: June 25, 2026.




Share article: