Búsqueda de perfiles, envíe mensajes, encuentre trabajos y más en Python. No se requiere acceso oficial de API.
Documentación · Inicio rápido · Cómo funciona
✅ No se requiere acceso oficial de API. Simplemente use una cuenta de usuario de LinkedIn válida.
✅ Interfaz de API HTTP directa. No hay selenio, pupeteer u otros métodos de raspado basados en el navegador.
✅ Obtener y buscar personas, empresas, trabajos, publicaciones
✅ Enviar y recuperar mensajes
✅ Enviar y aceptar solicitudes de conexión
✅ Obtenga y reaccione a las publicaciones
¡Y más! Lea los documentos para todos los métodos API.
Importante
Esta biblioteca no es oficialmente compatible con LinkedIn. El uso de esta biblioteca podría violar los términos de servicio de LinkedIn. Úselo bajo su propio riesgo.
Nota
Python> = 3.10 requerido
PIP install LinkedIn-API
O, para el borde sangrado:
PIP install git+https: //github.com/tomquirk/linkedin-api.git
Consejo
Vea todos los métodos API en los documentos.
El siguiente fragmento demuestra algunos casos básicos de uso de LinkedIn_api:
Desde LinkedIn_api Import LinkedIn# Authenticate utilizando cualquier cuenta de usuario de LinkedIn CredentialSapi = LinkedIn ('[email protected] ',' ********* ')# Obtener un ProfileProfile = api.get_profile (' billy-g ')# get get A Perfiles Contactar a Infocontact_info = API.Get_Profile_Contact_info ('Billy-G')# Get Conexiones de primer grado de un ProfileConNections dados = API.GET_PROFILE_CONNECTION ('1234ASC12304')Esta es una sección patrocinada
Extraiga datos y encuentre correos electrónicos verificados en tiempo real con la API de Finder de correo electrónico ProspeO LinkedIn.
Datos de perfil extraídos en tiempo real
Datos de la empresa del perfil
Correo electrónico de trabajo verificado del perfil
Puntos de datos exclusivos (género, código de país limpio, zona horaria ...)
Una solicitud de hacer todo
API estable, probada bajo alta carga
Pruébalo con 75 perfiles. Obtenga su llave API gratuita ahora.
Raspe los datos de perfil de LinkedIn público a escala con API proxycurl.
Los perfiles públicos raspados se proban en la corte en el caso Hiq vs LinkedIn.
GDPR, CCPA, Soc2 Cumplante
Límite de tarifa alta: 300 solicitudes/minuto
Fast - API responde en ~ 2s
Datos frescos: el 88% de los datos se raspan en tiempo real, otro 12% no es mayor de 29 días
Alta precisión
Toneladas de puntos de datos devueltos por perfil
Construido para desarrolladores, por desarrolladores.
API completa de LinkedIn: conectar clásico/navegador/reclutador de ventas, sincronizar mensajes en tiempo real, enriquecer los datos y construir secuencias de divulgación ...
Conecte fácilmente a sus usuarios en la nube con nuestra autenticación de etiqueta blanca (Captcha Solución, validación en la aplicación, OTP, 2FA).
Webhook en tiempo real para cada mensaje recibido, estado de lectura, invitación aceptada y más.
Extracción de datos: obtenga perfil, obtenga compañía, obtenga publicar, extraiga los resultados de búsqueda de Classic + Sales Navigator + Reclutor
Secuencias de divulgación: envíe invitaciones, inmail, mensajes y comente en publicaciones ...
Pruebe todas las características con nuestra prueba gratuita de 7 días.
Raspe cualquier dato de LinkedIn, sin límite con la API de Scrapin.
Datos en tiempo real (no cache)
Construido para desarrolladores SaaS
GDPR, CCPA, Soc2 Cumplante
Documentación de API interactiva
Una API altamente estable, respaldada por más de 4 años de experiencia en aprovisionamiento de datos, con la fiabilidad adicional de dos marcas de proveedores de datos adicionales propiedad de la compañía detrás de Scrapin.
Pruébalo gratis. Obtenga su llave API ahora
Acceda a los datos de LinkedIn en tiempo real de alta calidad a escala con API ISCRAPER, que ofrece escalabilidad ilimitada y precisión inigualable.
Raspado de datos de LinkedIn en tiempo real con precisión inigualable
Conjuntos de datos alojados con poderoso acceso a la búsqueda de Lucene
Diseñado para aplicaciones empresariales y de nivel corporativo
Maneja millones de rasguños por día, asegurando la escalabilidad ilimitada
Confiado en las principales empresas para las necesidades de datos de la misión crítica
Documentación de API interactiva basada en las especificaciones de OpenAPI 3 para una integración perfecta
Respaldado por más de 10 años de experiencia en aprovisionamiento de datos en tiempo real
Garantía de precio más bajo para uso de alto volumen
Empiece aquí.
Sección patrocinada por fin
poetry
Una cuenta de usuario de LinkedIn válida (no use su cuenta personal, si es posible)
Cree un archivo de configuración .env (use .env.example como referencia)
Instalar dependencias usando poetry :
instalación de poesía Poesía Self Agregar poesía-plugin-dotenv
Ejecute todas las pruebas:
Poetry Run Pytest
Ejecutar pruebas unitarias:
Pruebas/unidad de Poetry Run Pytest
Ejecutar pruebas E2E:
Poetry Run Pytest Pruebas/E2E
La poesía corre negra -check.
O para arreglar:
La poesía corre negra.
CHALLENGELinkedIn le arrojará una pelota curva en forma de URL de desafío. Actualmente no manejamos esto, por lo que estás un poco jodido. Creemos que solo podría estar basado en IP (es decir, iniciar sesión desde diferentes ubicaciones). Su mejor oportunidad de resolución es iniciar sesión y volver a iniciar sesión en su navegador.
Las razones conocidas para el desafío incluyen:
2fa
Limit de tasa: "Parece que estás visitando un número muy alto de páginas en LinkedIn". Nota - N = 1 Experimento donde se presionó esta página después de ~ 900 solicitudes contiguas en una sola sesión (dentro de la hora) (estos incluían retrasos aleatorios entre cada solicitud), así como un montón de pruebas, por lo que quién conoce el límite real.
Agregue más a medida que los encuentre.
El kilometraje puede variar al buscar palabras clave generales como "software" utilizando el método search estándar. Recientemente han agregado algunos inteligentes en torno a la búsqueda por la cual agrupan los resultados de las personas, la empresa, los trabajos, etc. Si la consulta es lo suficientemente general. Intente usar un método de búsqueda específico de entidad (es decir, search_people) cuando sea posible.
Este proyecto intenta proporcionar una interfaz simple de Python para la API de LinkedIn.
¿Te refieres a la API Legit LinkedIn?
¡NO! Para recuperar datos estructurados, el sitio web de LinkedIn utiliza un servicio que llaman Voyager . Los puntos finales de Voyager nos dan acceso a casi todo lo que pudimos desear de LinkedIn: perfiles, empresas, conexiones, mensajes, etc., cualquier cosa que pueda ver en LinkedIn.com, podamos obtener de Voyager.
Este proyecto tiene como objetivo proporcionar cobertura completa para Voyager.
¿Cómo funciona?
Los puntos finales de Voyager se ven así:
https://www.linkedin.com/voyager/api/identity/profileView/tom-quirkO más claramente
___________________________________ _______________________________
| base path | resource |
https://www.linkedin.com/voyager/api /identity/profileView/tom-quirkSe autentican con una cookie simple, que enviamos con cada solicitud, junto con un montón de encabezados.
Para obtener una cookie, publicamos un nombre de usuario y contraseña determinados (de una cuenta de usuario de LinkedIn válida) a https://www.linkedin.com/uas/authenticate .
Estamos mirando el sitio web de LinkedIn y vemos algunos datos que queremos. ¿Qué ahora?
A continuación se describe el método más confiable para encontrar puntos finales relevantes:
view source
command-f /Busque en la página alguna palabra clave en los datos. Esto existirá dentro de una etiqueta <code> .
Desplácese hacia abajo hasta el siguiente elemento adyacente que será otra etiqueta <code> , probablemente con una id que se parece a algo así como
<Code style = "Display: None" id = "DataLet-BPR-Guid-3900675">
{"Solicitar": "/Voyager/API/Identity/Perfiles/Tom-Quirk/PerfilView", "Estado": 200, "Body": "BPR-Guid-3900675"} </code> ¡El valor de request es la URL! ?
También puede usar la pestaña network en sus herramientas de desarrollador de navegadores, pero encontrará resultados mixtos.
LinkedIn.com utiliza el protocolo REST-LI para consultar datos. REST-LI es un lenguaje/sintaxis de consulta interna donde los clientes (como LinkedIn.com) especifican qué datos desean. Es conceptualmente similar al GraphQL.
Aquí hay un ejemplo de hacer una solicitud para name y groups de una organización (los grupos de LinkedIn que administra):
/voyager/api/organization/companies?decoration=(name,groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url))&q=universalName&universalName=linkedin La "consulta" ocurre en el parámetro decoration , que parece lo siguiente:
(
name,
groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url)
) Aquí, solicitamos un nombre de organización y una lista de grupos, donde para cada grupo queremos largeLogo , groupName , etc.
Diferentes puntos finales usan diferentes parámetros (y quizás incluso diferentes sintaxis) para especificar estas consultas. Observe que la consulta anterior tenía un parámetro q cuyo valor era universalName ; La consulta se especificó luego con el parámetro decoration .
En contraste, el punto final /search/cluster usa q=guided , y especifica su consulta con el parámetro guided , cuyo valor es algo así como
List(v->PEOPLE)Podría ser posible documentar (e implementar una buena interfaz para) este lenguaje de consulta: a medida que agregamos más puntos finales a este proyecto, estoy seguro de que será más claro si tal cosa sería posible (y si vale la pena) .
version de golpe en pyproject.toml
poetry build
poetry publish -r test-pypi
poetry publish
Notas de lanzamiento de borrador en GitHub.
Esta biblioteca no está respaldada o compatible con LinkedIn. Es una biblioteca no oficial destinada a fines educativos y solo uso personal. Al usar esta biblioteca, usted acepta no responsabilizar al autor o contribuyentes de cualquier consecuencia resultante de su uso.