TL;DR
El raspado de LinkedIn es la extracción automatizada de información de páginas de LinkedIn, pero el requisito de ingeniería suele ser más específico: un conjunto de datos utilizable sobre tu propia actividad, una organización gestionada o una integración aprobada. Define ese requisito antes de seleccionar una extensión del navegador o escribir selectores. "Todos los perfiles en una industria" y "mis conexiones exportadas" son problemas de acceso y calidad fundamentalmente diferentes.
El Acuerdo de Usuario de LinkedIn restringe el raspado y ciertos usos automatizados. Trata la autorización de la plataforma como un requisito previo del proyecto, no como una configuración del navegador. Una página visible o una sesión funcional no establecen que un método de colección o un uso posterior sea permitido. Esta guía se enfoca en fuentes aprobadas y procesamiento offline en lugar de una receta para evadir restricciones de acceso.
Usa una matriz de fuentes para evitar implementaciones costosas contra un punto de acceso inadecuado. Especifica la entidad, los campos, la cuenta autorizada, la frecuencia de actualización y el uso permitido. Si ninguna fuente aprobada suministra un campo requerido, registra la brecha en lugar de inferirla a partir del nombre de una persona o su cargo.
Las instrucciones de descarga de datos de LinkedIn describen cómo solicitar un archivo de respaldo desde Configuración y Privacidad, luego Datos y Privacidad y Descargar mis datos. Esta es una exportación de datos de cuenta, no un directorio sin restricciones de otros miembros. Las categorías disponibles dependen de tu actividad en la cuenta, y las direcciones de correo electrónico de conexiones pueden estar ausentes debido a las elecciones de privacidad de los miembros.
Para un archivo personal único o una migración autorizada, este enfoque puede ser más adecuado que reconstruir un conjunto de datos desde el marcado de la página. Conserva el archivo original, la fecha de exportación y las categorías seleccionadas. Confirma lo que significa cada columna antes de cargarla en un CRM; un correo en blanco no es una instrucción para adivinar uno.
La guía de acceso a la API de LinkedIn distingue entre permisos abiertos y programas que requieren aprobación. La autenticación y el consentimiento son partes necesarias del acceso; no son un permiso para recuperar el perfil completo de cualquier miembro. Revisa el producto específico, el permiso, la entidad y el uso permitido antes de diseñar el contrato de datos.
Mantén separadas las solicitudes de inicio de sesión, administración de organización, integraciones de publicidad y ventas. Un token que funcione para un producto puede carecer de permiso para un recurso diferente. Registra la operación y la categoría de error sin registrar el token en sí. No se realizó ninguna solicitud de API de LinkedIn autenticada para este artículo.
La extracción del navegador depende de la página cargada, el rol de la cuenta, el diseño actual y el estado de navegación. Si tu organización tiene autorización explícita para un flujo limitado, define las páginas y campos antes de automatizar. Detente cuando el objetivo solicite un permiso diferente o presente una restricción. Un nuevo perfil de navegador no amplía el conjunto de datos aprobado.
Un registro útil contiene source_record_id cuando se proporciona, source_url, observed_at, source_type, name, company y un estado de calidad a nivel de campo. No uses un nombre de visualización como identificador único: diferentes personas pueden compartir un nombre, y una persona puede cambiar de nombre o empleador. Conserva los valores sin procesar junto con las decisiones de normalización para que los fusiones incorrectos puedan revertirse.
| Condición de datos | Elección de almacenamiento | ¿Por qué importa? |
|---|---|---|
| URL de perfil faltante | Cuarentena o conservar como no coincidente | La fusión basada en nombre puede combinar personas |
| Correo electrónico faltante | Nulo con razón si se conoce | No es equivalente a una dirección inválida o adivinada |
| URL de origen repetida | Investigar duplicado exacto o nueva instantánea | Una observación posterior puede contener una actualización real |
| Empleador en conflicto | Conservar origen y hora | La recencia y el contexto son necesarios para resolverlo |
El siguiente ejemplo de Python utiliza un CSV sintético y simplificado deliberadamente. Sus columnas son un contrato de enseñanza, no una promesa sobre los encabezados exactos del archivo actual. Utiliza el analizador CSV de Python en lugar de dividir líneas en comas, lo que manejaría mal nombres o valores de empresa entre comillas.
import csv, io, json
from urllib.parse import urlsplit, urlunsplit
sample = 'name,url,company\n"Demo, Person",https://www.linkedin.com/in/demo/?trk=x,Example\n"Demo, Person",https://www.linkedin.com/in/demo/,Example\nUnmatched,,Example\n'
seen, accepted, rejected = set(), [], []
for row in csv.DictReader(io.StringIO(sample)):
parts = urlsplit(row["url"].strip())
if (parts.scheme != "https" or parts.netloc.lower() != "www.linkedin.com"
or not parts.path.startswith("/in/")):
rejected.append({"name": row["name"], "reason": "missing_or_unexpected_url"})
continue
key = urlunsplit(("https", "www.linkedin.com", parts.path.rstrip("/") + "/", "", ""))
if key in seen:
continue
seen.add(key)
accepted.append({"name": row["name"], "source_url": key, "company": row["company"]})
assert len(accepted) == 1 and len(rejected) == 1
print(json.dumps({"accepted": accepted, "rejected": rejected}, indent=2))
La ejecución local retuvo un registro normalizado, eliminó la URL repetida y separó la fila sin URL. No realizó ninguna solicitud de red y procesó ningún dato personal real. Este normalizador estrecho acepta solo el host y ruta declarados; adapta una lista permitida explícita cuando tu conjunto de datos aprobado utiliza legalmente otros formatos de URL. No amplíes silenciosamente para redirecciones arbitrarias.
Para archivos reales, inspecciona cualquier fila de encabezado y ortografía de encabezados, luego configura el analizador deliberadamente. Mantén un recuento de conciliación: filas de entrada iguales a filas aceptadas, duplicadas y rechazadas. Almacena la versión de transformación y evita sobrescribir tu única copia de origen.
Nstbrowser organiza entornos de navegador como Perfiles separados. Eso puede ayudar a un equipo a asociar una tarea de revisión permitida con el contexto de cuenta adecuado. Sus configuraciones de grupo incluyen opciones de almacenamiento y sincronización que afectan cómo se maneja el estado guardado. Estos controles son útiles al preparar o revisar un flujo de cuenta autorizada. No autorizan el raspado de LinkedIn, extienden los permisos de API o garantizan que una cuenta evite restricciones.
Sigue el flujo de creación de Perfiles, luego revisa las configuraciones de almacenamiento de grupo. Si un proceso interno permitido necesita acciones de navegador repetibles, consulta la documentación de RPA después de definir su alcance permitido. No se ejecutó ninguna extracción de LinkedIn en vivo ni flujo de Nstbrowser para esta guía.
Mantén los criterios de aceptación concretos: cuenta correcta, archivo solicitado, categorías de archivo esperadas y conteo de filas conciliadas. Una herramienta que abre la página correcta ha completado solo la parte del navegador de la tarea.
P: ¿Permite el acceso a la API de LinkedIn descargar cada perfil?
No. El acceso está vinculado al producto específico, los permisos y el uso aprobado. Revisa la operación que realmente necesitas.
P: ¿Por qué los campos de correo electrónico están ausentes en una exportación de conexiones?
LinkedIn indica que la disponibilidad de correos electrónicos de conexiones depende en parte de las elecciones de privacidad de los miembros. Conserva los valores faltantes en lugar de adivinarlos.
P: ¿Puede hacer que el raspado sea permitido un Perfil de navegador?
No. La gestión del entorno y la autorización de la plataforma son requisitos separados.
P: ¿Es suficiente con coincidir por nombre para deduplicar personas?
No. Usa un identificador de fuente estable donde esté disponible y conserva los registros ambiguos para revisión.