بحث ملفات تعريف وإرسال الرسائل وإيجاد وظائف وأكثر في بيثون. لا وصول واجهة برمجة التطبيقات الرسمية المطلوبة.
الوثائق · بداية سريعة · كيف تعمل
✅ لا يوجد الوصول الرسمي API المطلوب. فقط استخدم حساب مستخدم LinkedIn صالح.
✅ واجهة API المباشرة HTTP. لا يوجد سيلينيوم أو بوبيتير أو طرق تجريف أخرى قائمة على المتصفح.
✅ احصل على الأشخاص والبحث عن الأشخاص والشركات والوظائف والوظائف
✅ إرسال واسترداد الرسائل
✅ إرسال وقبول طلبات الاتصال
✅ احصل ورد على المشاركات
وأكثر! اقرأ مستندات لجميع أساليب API.
مهم
لا يتم دعم هذه المكتبة رسميًا بواسطة LinkedIn. قد يؤدي استخدام هذه المكتبة إلى انتهاك شروط خدمة LinkedIn. استخدمه على مسؤوليتك الخاصة.
ملحوظة
Python> = 3.10 مطلوب
PIP تثبيت LinkedIn-API
أو ، لحافة النزيف:
PIP تثبيت git+https: //github.com/tomquirk/linkedin-api.git
نصيحة
انظر جميع أساليب API على المستندات.
يوضح المقتطف التالي بعض حالات استخدام LinkedIn_API الأساسية:
من LinkedIn_API استيراد LinkedIn# مصادقة باستخدام أي اعتماد حساب مستخدم LinkedIn = linkedIn ('[email protected] '،' ******* ')# احصل على profileprofile = api.get_profile (' billy-g ' ملامح الاتصال infocontact_info = api.get_profile_contact_info ('billy-g')# get اتصالات الدرجة الأولى من profileConnections = api.get_profile_connections ('1234asc12304')هذا قسم برعاية
استخراج البيانات والعثور على رسائل البريد الإلكتروني التي تم التحقق منها في الوقت الفعلي مع Prospeo LinkedIn البريد الإلكتروني API.
بيانات الملف الشخصي المستخرجة في الوقت الفعلي
بيانات الشركة من الملف الشخصي
تم التحقق من بريد إلكتروني العمل من الملف الشخصي
نقاط البيانات الحصرية (الجنس ، رمز البلد المنظف ، المنطقة الزمنية ...)
طلب واحد كل شيء
API مستقر ، تم اختباره تحت الحمل العالي
جربه مع 75 ملف تعريف. احصل على مفتاح API المجاني الآن.
كشط بيانات ملف تعريف LinkedIn العامة على نطاق واسع مع بروكسي كورل واجهات برمجة التطبيقات.
يتم اختبار الكشط للملفات التعليمية العامة في المحكمة في قضية HiQ vs LinkedIn.
إجمالي الناتج المحلي ، CCPA ، SOC2 متوافق
الحد المرتفع للمعدل - 300 طلب/دقيقة
FAST - APIs تستجيب في ~ 2S
بيانات جديدة - 88 ٪ من البيانات يتم كشطها في الوقت الفعلي ، و 12 ٪ أخرى لا تزيد عن 29 يومًا
دقة عالية
يتم إرجاع أطنان من نقاط البيانات لكل ملف تعريف
بنيت للمطورين ، من قبل المطورين.
API LinkedIn الكامل: قم بتوصيل Classic/Sales Navigator/Recruiter ، ومزامنة المراسلة في الوقت الفعلي ، وإثراء البيانات وبناء تسلسل التوعية ...
قم بتوصيل المستخدمين بسهولة في السحابة بمصادقة العلامات البيضاء لدينا (Captcha Solving ، Vealding In-App ، OTP ، 2FA).
في الوقت الحقيقي Webhook لكل رسالة وردت ، وقراءة الحالة ، والدعوة المقبولة ، وأكثر من ذلك.
استخراج البيانات: احصل على ملف تعريف ، احصل على الشركة ، الحصول على ما بعد ، استخراج نتائج البحث من الكلاسيكية + المبيعات المستكشف + Recruiter
تسلسلات التوعية: أرسل الدعوات ، و inmail ، والرسائل ، والتعليق على المشاركات ...
اختبر جميع الميزات مع تجريبي مجاني لمدة 7 أيام.
كشط أي بيانات من LinkedIn ، دون حد مع Scrapin API.
بيانات الوقت الحقيقي (عدم وجود آذان)
بنيت لمطوري SaaS
إجمالي الناتج المحلي ، CCPA ، SOC2 متوافق
وثائق API التفاعلية
واجهة برمجة تطبيقات مستقرة للغاية ، مدعومة بأكثر من 4 سنوات من الخبرة في توفير البيانات ، مع موثوقية إضافية لعلامات تجارية إضافية لموفرات البيانات المملوكة للشركة وراء خردة.
جربه مجانًا. احصل على مفتاح API الخاص بك الآن
الوصول إلى بيانات LinkedIn عالية الجودة ، في الوقت الفعلي على نطاق واسع مع ISCRAPER API ، مما يوفر قابلية التوسع غير المحدودة ودقة لا مثيل لها.
في الوقت الفعلي ، تجريف بيانات LinkedIn بدقة لا مثيل لها
مجموعات بيانات مستضافة مع وصول قوي لبحث لوسين
مصممة للتطبيقات على مستوى الشركات والمؤسسات
يعالج ملايين الخدوش يوميًا ، مما يضمن قابلية التوسع غير المحدودة
موثوق بها من قبل الشركات الكبرى لاحتياجات البيانات المهمة
وثائق API التفاعلية المبنية على مواصفات Openapi 3 للتكامل السلس
بدعم من أكثر من 10 سنوات من الخبرة في توفير البيانات في الوقت الفعلي
أدنى ضمان للأسعار للاستخدام الكبير في الحجم
ابدأ هنا.
نهاية القسم برعاية
poetry
حساب مستخدم LinkedIn صالح (لا تستخدم حسابك الشخصي ، إن أمكن)
إنشاء ملف تكوين .env (استخدم .env.example كمرجع)
تثبيت التبعيات باستخدام poetry :
تثبيت الشعر الشعر ذاتي أضف الشعر-بلوجين dotenv
قم بتشغيل جميع الاختبارات:
الشعر يدير pytest
تشغيل اختبارات الوحدة:
تدير الشعر اختبارات/وحدة
قم بتشغيل اختبارات E2E:
تجار الشعر باختبارات pytest/e2e
الشعر يدير أسود -تحقق.
أو للإصلاح:
الشعر يدير أسود.
CHALLENGEسوف يرمي لك LinkedIn كرة منحنى في شكل عنوان URL للتحدي. نحن حاليًا لا نتعامل مع هذا ، ولذا فأنت مشدود نوعًا ما. نعتقد أنه يمكن أن يكون فقط على أساس IP (أي تسجيل الدخول من موقع مختلف). أفضل فرصتك في الدقة هي تسجيل الخروج وتسجيل الدخول في متصفحك.
تشمل الأسباب المعروفة للتحدي :
2FA
الحد الأقصى للمعدل - "يبدو أنك تزور عددًا كبيرًا من الصفحات على LinkedIn.". ملاحظة - ن = 1 تجربة حيث تم ضرب هذه الصفحة بعد حوالي 900 طلب متجاورة في جلسة واحدة (في غضون الساعة) (تضمنت تأخيرات عشوائية بين كل طلب) ، بالإضافة إلى مجموعة من الاختبارات ، لذلك من يعرف الحد الفعلي.
الرجاء إضافة المزيد عندما تصادفهم.
قد يختلف عدد الأميال عند البحث عن كلمات رئيسية عامة مثل "البرامج" باستخدام طريقة search القياسية. لقد أضافوا مؤخرًا بعض الذكاء حول البحث حيث قاموا بتجميع نتائج الأشخاص والشركة والوظائف وما إلى ذلك إذا كان الاستعلام عامًا بدرجة كافية. حاول استخدام طريقة بحث خاصة بالكيان (أي Search_people) حيثما أمكن.
يحاول هذا المشروع توفير واجهة Python بسيطة ل API LinkedIn.
هل تقصد واجهة برمجة تطبيقات LinkedIn LinkedIn؟
لا! لاسترداد البيانات المهيكلة ، يستخدم موقع LinkedIn خدمة يسمونها Voyager . تتيح لنا Voyager Endpoints إمكانية الوصول إلى كل ما يمكن أن نريده من LinkedIn: الملفات الشخصية ، والشركات ، والاتصالات ، والرسائل ، وما إلى ذلك - أي شيء يمكنك رؤيته على LinkedIn.com ، يمكننا الحصول عليه من Voyager.
يهدف هذا المشروع إلى توفير تغطية كاملة لـ Voyager.
كيف تعمل؟
تبدو نقاط نهاية Voyager هكذا:
https://www.linkedin.com/voyager/api/identity/profileView/tom-quirkأو أكثر وضوحا
___________________________________ _______________________________
| base path | resource |
https://www.linkedin.com/voyager/api /identity/profileView/tom-quirkتم مصادقةها باستخدام ملف تعريف ارتباط بسيط ، نرسله مع كل طلب ، إلى جانب مجموعة من الرؤوس.
للحصول على ملف تعريف ارتباط ، ننشر اسم المستخدم وكلمة المرور المعطى (لحساب مستخدم LinkedIn صالح) إلى https://www.linkedin.com/uas/authenticate .
نحن ننظر إلى موقع LinkedIn ونكتشف بعض البيانات التي نريدها. ماذا الآن؟
يصف ما يلي الطريقة الأكثر موثوقية للعثور على نقاط النهاية ذات الصلة:
view source
command-f /ابحث في الصفحة للحصول على بعض الكلمات الرئيسية في البيانات. سيكون هذا داخل علامة <code> .
قم بالتمرير لأسفل إلى العنصر المجاور التالي الذي سيكون علامة <code> أخرى ، ربما مع id يبدو شيئًا مثل
<code style = "display: none" id = "datalet-bpr-guid-3900675">
{"request": "/voyager/API/Identity/Profiles/Tom-Quirk/ProfileView" ، "الحالة": 200 ، "الجسم": "BPR-GUID-3900675"} </code> قيمة request هي عنوان URL! ؟
يمكنك أيضًا استخدام علامة تبويب network في أدوات مطور المستعرضات الخاصة بك ، لكنك ستواجه نتائج مختلطة.
يستخدم LinkedIn.com بروتوكول REST-LI للاستعلام عن البيانات. REST-LI هي لغة/بناء جملة للاستعلام الداخلي حيث يحدد العملاء (مثل LinkedIn.com) البيانات التي يريدونها. إنه مشابه من الناحية المفاهيمية لـ GraphQL.
فيما يلي مثال على تقديم طلب name groups المنظمة (مجموعات LinkedIn التي تديرها):
/voyager/api/organization/companies?decoration=(name,groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url))&q=universalName&universalName=linkedin يحدث "الاستعلام" في معلمة decoration ، والتي تشبه ما يلي:
(
name,
groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url)
) هنا ، نطلب اسم مؤسسة وقائمة من المجموعات ، حيث نريد لكل مجموعة largeLogo و groupName وما إلى ذلك.
تستخدم نقاط النهاية المختلفة معلمات مختلفة (وربما حتى بناء جملة مختلفة) لتحديد هذه الاستعلامات. لاحظ أن الاستعلام أعلاه كان له معلمة q التي كانت قيمتها universalName ؛ ثم تم تحديد الاستعلام مع معلمة decoration .
على النقيض من ذلك ، تستخدم نقطة نهاية /search/cluster q=guided ، وتحدد استعلامها بالمعلمة guided ، والتي تكون قيمتها شيئًا مثل
List(v->PEOPLE)قد يكون من الممكن توثيق (وتنفيذ واجهة لطيفة) لغة الاستعلام هذه - حيث نضيف المزيد من نقاط النهاية إلى هذا المشروع ، أنا متأكد من أنه سيصبح أكثر وضوحًا إذا كان هذا الشيء سيكون ممكنًا (وإذا كان الأمر يستحق ذلك) .
version عثرة في pyproject.toml
poetry build
poetry publish -r test-pypi
poetry publish
مسودة ملاحظات الإصدار في جيثب.
لا يتم اعتماد هذه المكتبة أو دعمها من قبل LinkedIn. إنها مكتبة غير رسمية مخصصة للأغراض التعليمية والاستخدام الشخصي فقط. باستخدام هذه المكتبة ، فإنك توافق على عدم حمل المؤلف أو المساهمين المسؤولين عن أي عواقب ناتجة عن استخدامها.