Recherchez les profils, envoyez des messages, recherchez des travaux et plus dans Python. Aucun accès officiel à l'API requis.
Documentation · Démarrage rapide · Comment cela fonctionne
✅ Aucun accès officiel à l'API requis. Utilisez simplement un compte utilisateur LinkedIn valide.
✅ Interface API HTTP directe. Pas de sélénium, de pupeteer ou d'autres méthodes de grattage basées sur un navigateur.
✅ Obtenez et recherchez les gens, les entreprises, les emplois, les publications
✅ Envoyer et récupérer des messages
✅ Envoyer et accepter les demandes de connexion
✅ Obtenez et réagissez aux messages
Et plus! Lisez les documents pour toutes les méthodes API.
Important
Cette bibliothèque n'est pas officiellement soutenue par LinkedIn. L'utilisation de cette bibliothèque peut violer les conditions d'utilisation de LinkedIn. Utilisez-le à vos propres risques.
Note
Python> = 3,10 requis
PIP Installer LinkedIn-API
Ou, pour le bord de saignement:
pip install git + https: //github.com/tomquirk/linkedin-api.git
Conseil
Voir toutes les méthodes API sur les documents.
L'extrait suivant montre quelques cas d'utilisation de base LinkedIn_API:
à partir de LinkedIn_API Importer LinkedIn # Authenticiate Utilisation de tout compte User LinkedIn IndementialSapi = LinkedIn ('[email protected] ',' ******* ') Un profil contacte infocontact_info = api.get_profile_contact_info ('billy-g') # get Connexions du 1er degré d'un profileConnections donné = API.get_profile_connections ('1234asc12304')Ceci est une section sponsorisée
Extraire les données et trouver des e-mails vérifiés en temps réel avec l'API Prospeo LinkedIn Email Finder.
Données de profil extraites en temps réel
Données de l'entreprise du profil
E-mail de travail vérifié du profil
Points de données exclusifs (genre, code de pays nettoyé, fuseau horaire ...)
Une demande de bricolage
API stable, testée sous une charge élevée
Essayez-le avec 75 profils. Obtenez votre clé API gratuite maintenant.
Scraper les données de profil LinkedIn public à grande échelle avec les API proxycurl.
Le grattage des profils publics est testé contre la cour au tribunal dans l'affaire HIQ vs LinkedIn.
GDPR, CCPA, SOC2 conforme
Limite de taux élevé - 300 demandes / minute
Rapide - les API répondent en ~ 2s
Données fraîches - 88% des données sont grattées en temps réel, les autres 12% ne sont pas plus âgés de 29 jours
Grande précision
Des tonnes de points de données renvoyés par profil
Construit pour les développeurs, par les développeurs.
API Full LinkedIn: Connectez Classic / Sales Navigator / Recruiter, synchronisez la messagerie en temps réel, enrichissez les données et créez des séquences de sensibilisation…
Connectez facilement vos utilisateurs dans le cloud avec notre authentification en marquage blanc (CAPTCHA Résolution, validation intégrée, OTP, 2FA).
Webhook en temps réel pour chaque message reçu, lisez l'état, l'invitation acceptée, etc.
Extraction des données: obtenir un profil, obtenir une entreprise, obtenir un message, extraire les résultats de recherche de Classic + Sales Navigator + Recruiter
Séquences de sensibilisation: envoyer des invitations, inmail, messages et commentaires sur les messages…
Testez toutes les fonctionnalités avec notre essai gratuit de 7 jours.
Graquez toutes les données de LinkedIn, sans limite avec API Scrapin.
Données en temps réel (sans cache)
Construit pour les développeurs SaaS
GDPR, CCPA, SOC2 conforme
Documentation API interactive
Une API hautement stable, soutenue par plus de 4 ans d'expérience dans l'approvisionnement en données, avec la fiabilité supplémentaire de deux marques de fournisseurs de données supplémentaires appartenant à l'entreprise derrière Sctrin.
Essayez-le gratuitement. Obtenez votre clé API maintenant
Accédez à une échelle de données LinkedIn en temps réel de haute qualité avec l'API ISCRACLER, offrant une évolutivité illimitée et une précision inégalée.
Stracage des données LinkedIn en temps réel avec une précision inégalée
Ensembles de données hébergés avec un puissant accès à la recherche de lucene
Conçu pour les applications de niveau d'entreprise et d'entreprise
Gère des millions de éraflures par jour, assurant une évolutivité illimitée
Confiance par les meilleures entreprises pour les besoins en données critiques de mission
Documentation API interactive construite sur les spécifications OpenAPI 3 pour l'intégration transparente
Soutenu par plus de 10 ans d'expérience dans l'approvisionnement en temps réel
Garantie de prix le plus bas pour une utilisation à volume élevé
Commencez ici.
Fin de la section sponsorisée
poetry
Un compte utilisateur LinkedIn valide (n'utilisez pas votre compte personnel, si possible)
Créer un fichier de configuration .env (utilisez .env.example comme référence)
Installez les dépendances à l'aide de poetry :
Installation de poésie poésie auto ajouter la poésie-plugin-dotenv
Exécutez tous les tests:
Poetry Run Pytest
Exécutez des tests unitaires:
Poetry Exécutez des tests / unité Pytest
Exécutez les tests E2E:
Poetry exécute Pytest Tests / E2E
Poetry Run Black --Check.
Ou pour réparer:
La poésie se déroule noire.
CHALLENGELinkedIn vous lancera une balle courbe sous la forme d'une URL de défi. Nous ne gardons actuellement pas cela, et donc vous êtes un peu vissé. Nous pensons que cela ne pourrait être que basé sur IP (c'est-à-dire en se connectant à partir de différents emplacements). Votre meilleure chance de résolution est de vous déconnecter et de vous reconnecter sur votre navigateur.
Les raisons connues de défi comprennent:
2fa
Rate-Limit - "Il semble que vous visitiez un nombre très élevé de pages sur LinkedIn.". Remarque - n = 1 Expérience où cette page a été touchée après ~ 900 demandes contiguës en une seule session (dans l'heure) (celles-ci incluaient des retards aléatoires entre chaque demande), ainsi qu'un tas de tests, alors qui connaît la limite réelle.
Veuillez en ajouter plus au fur et à mesure que vous les rencontrez.
Le kilométrage peut varier lors de la recherche de mots clés généraux comme le "logiciel" à l'aide de la méthode search standard. Ils ont récemment ajouté une intelligence sur la recherche par laquelle ils regroupent les résultats par les personnes, l'entreprise, les emplois, etc. Si la requête est suffisamment générale. Essayez d'utiliser une méthode de recherche spécifique à l'entité (c'est-à-dire Search_people) dans la mesure du possible.
Ce projet tente de fournir une interface Python simple pour l'API LinkedIn.
Voulez-vous dire l'API LinkedIn légitime?
NON! Pour récupérer des données structurées, le site Web LinkedIn utilise un service qu'ils appellent Voyager . Les points de terminaison Voyager nous donnent accès à à peu près tout ce que nous pourrions souhaiter de LinkedIn: profils, entreprises, connexions, messages, etc. - tout ce que vous pouvez voir sur LinkedIn.com, nous pouvons obtenir de Voyager.
Ce projet vise à fournir une couverture complète pour Voyager.
Comment ça marche?
Les points de terminaison Voyager ressemblent à ceci:
https://www.linkedin.com/voyager/api/identity/profileView/tom-quirkOu, plus clairement
___________________________________ _______________________________
| base path | resource |
https://www.linkedin.com/voyager/api /identity/profileView/tom-quirkIls sont authentifiés avec un simple cookie, que nous envoyons à chaque demande, ainsi qu'un tas d'en-têtes.
Pour obtenir un cookie, nous publions un nom d'utilisateur et un mot de passe donné (d'un compte utilisateur LinkedIn valide) à https://www.linkedin.com/uas/authenticate .
Nous regardons le site Web de LinkedIn et nous repérons certaines données que nous voulons. Quoi maintenant?
Ce qui suit décrit la méthode la plus fiable pour trouver des points de terminaison pertinents:
view source
command-f / Rechercher la page un mot-clé dans les données. Cela existera à l'intérieur d'une balise <code> .
Faites défiler vers le prochain élément adjacent qui sera une autre balise <code> , probablement avec un id qui ressemble à quelque chose comme
<code style = "affiche: aucun" id = "datalet-bpr-guid-3900675">
{"requête": "/ Voyager / API / Identity / Profils / Tom-Quirk / ProfilView", "Status": 200, "Body": "BPR-GUID-3900675"} </code> La valeur de request est l'URL! ?
Vous pouvez également utiliser l'onglet network dans vos outils de développeur de navigateurs, mais vous rencontrerez des résultats mitigés.
LinkedIn.com utilise le protocole REST-LI pour interroger les données. REST-LI est un langage / syntaxe de requête interne où les clients (comme LinkedIn.com) spécifient les données qu'ils veulent. Il est conceptuellement similaire au GraphQL.
Voici un exemple de demande de name et groups d'une organisation (les groupes LinkedIn qu'il gère):
/voyager/api/organization/companies?decoration=(name,groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url))&q=universalName&universalName=linkedin La "requête" se produit dans le paramètre decoration , qui ressemble à ce qui suit:
(
name,
groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url)
) Ici, nous demandons un nom d'organisation et une liste de groupes, où pour chaque groupe, nous voulons largeLogo , groupName , etc.
Différents points d'extrémité utilisent différents paramètres (et peut-être même différentes syntaxes) pour spécifier ces requêtes. Notez que la requête ci-dessus avait un paramètre q dont la valeur était universalName ; La requête a ensuite été spécifiée avec le paramètre decoration .
En revanche, le point de terminaison /search/cluster utilise q=guided et spécifie sa requête avec le paramètre guided , dont la valeur est quelque chose comme
List(v->PEOPLE)Il pourrait être possible de documenter (et d'implémenter une belle interface pour) ce langage de requête - car nous ajoutons plus de points de terminaison à ce projet, je suis sûr que cela deviendra plus clair si une telle chose serait possible (et si cela en vaut la peine) .
version de bosse dans pyproject.toml
poetry build
poetry publish -r test-pypi
poetry publish
Projet de notes de version dans GitHub.
Cette bibliothèque n'est pas approuvée ou prise en charge par LinkedIn. Il s'agit d'une bibliothèque non officielle destinée à des fins éducatives et à un usage personnel uniquement. En utilisant cette bibliothèque, vous acceptez de ne pas tenir l'auteur ou les contributeurs responsables des conséquences résultant de son utilisation.