جمع بيانات LinkedIn: الملفات الشخصية والإعلانات
احصل على الملفات الشخصية وصفحات الشركات والمنشورات ونتائج البحث وإعلانات Ad Library العامة من LinkedIn بصيغة JSON عبر واجهة REST واحدة، برصيدين لكل طلب.
أبسط طريقة للحصول على بيانات LinkedIn العامة في 2026 هي واجهة API مستضافة لجمع البيانات: طلب HTTPS واحد يعيد لك الملف الشخصي العام لشخص ما، أو صفحة شركة، أو منشوراتهما، أو منشورات تطابق كلمة مفتاحية، أو إعلانات من Ad Library في LinkedIn، بصيغة JSON. مع crawlfeed، يكلّف كل طلب على LinkedIn رصيدين، ولا يحتاج إلا إلى مفتاح API بدل موافقة برنامج الشركاء، ويعيد البنية نفسها التي تعيدها بيانات X وInstagram وYouTube.
LinkedIn هو المكان الذي تعلن فيه الشركات عن التعيينات والإطلاقات وجولات التمويل، وحيث يتحدث المشترون والبائعون في قطاع الأعمال (B2B) علنًا. ولأغراض استخبارات المبيعات وأبحاث التوظيف ومتابعة المنافسين، يصعب الاستغناء عن بياناته العامة، ويصعب جمعها أيضًا. يشرح هذا الدليل كيف تجمع بيانات LinkedIn العامة (الملفات الشخصية، وصفحات الشركات، والمنشورات، والبحث في المنشورات، وإعلانات Ad Library) بطلبات HTTPS عادية، مع شيفرة جاهزة للتشغيل بلغات cURL وJavaScript وPython.
لماذا يصعب الحصول على بيانات LinkedIn إلى هذا الحد؟
LinkedIn هي الأكثر انغلاقًا بين الشبكات الكبرى:
- الواجهات الرسمية تحتاج إلى موافقة. تقع معظم واجهات LinkedIn خلف برامج شركاء، وكلٌّ منها مقصور على استخدام محدد مثل تسجيل الدخول أو المشاركة أو إدارة الإعلانات. لا يتيح أيٌّ منها لمنتجك قراءة أي ملف شخصي عام أو صفحة شركة. وحتى Posts API لا تقرأ إلا الصفحات التي تديرها.
- الوصول دون تسجيل دخول محدود جدًا. معظم LinkedIn خلف شاشة تسجيل الدخول، والصفحات العامة لا تعرض إلا جزءًا من المحتوى، والزيارات الآلية تواجه تحققًا صارمًا. وأداة جمع البيانات المبنية على حساب مسجّل تعرّض ذلك الحساب للخطر.
- البنية تتغير كثيرًا. يُعاد تشكيل صفحات الملفات الشخصية وصفحات الشركات العامة بانتظام، فتحتاج المحللات إلى إصلاح مستمر.
إليك مقارنة بين الخيارات المعتادة:
| الطريقة | الملفات الشخصية والشركات العامة | المنشورات | Ad Library |
|---|---|---|---|
| واجهات LinkedIn الرسمية | بموافقة الشركاء فقط، ولاستخدامات معتمدة | غالبًا محتواك أو محتوى أعضائك فقط | حساباتك الإعلانية فقط |
| أداة جمع بيانات تبنيها بنفسك | جزئيًا، وبنتائج هشّة | جزئيًا | نعم، بجهد إضافي |
| واجهة API لجمع البيانات (crawlfeed) | نعم | نعم | نعم |
يتبع باقي هذا الدليل الطريقة الأخيرة.
ما بيانات LinkedIn التي يمكنك الحصول عليها؟
كل الطلبات أدناه متاحة على crawlfeed اليوم. يُولَّد الجدول من فهرس الواجهة نفسه، لذا فنقاط النهاية والأسعار هي بالضبط ما ستدفعه:
| العملية | نقطة النهاية | المُعاملات المطلوبة | الرصيد |
|---|---|---|---|
| الملف الشخصي | /v1/linkedin/profile | handle | 2 |
| المنشورات | /v1/linkedin/posts | handle | 2 |
| منشور | /v1/linkedin/post | id | 2 |
| الشركة | /v1/linkedin/company | handle | 2 |
| منشورات الشركة | /v1/linkedin/company/posts | handle | 2 |
| النص المفرّغ | /v1/linkedin/transcript | id | 2 |
| الملخص | /v1/linkedin/summary | id | 5 |
| البحث في المنشورات | /v1/linkedin/search/posts | q | 2 |
| البحث في الإعلانات | /v1/linkedin/ads/search | q | 2 |
| إعلانات معلِن | /v1/linkedin/ads | advertiser | 2 |
| إعلان | /v1/linkedin/ad | id | 2 |
لاحظ عمود السعر: يكلّف كل طلب على LinkedIn رصيدان، لأن جلب بيانات LinkedIn من المصدر أعلى تكلفة. خطّط للتنقل بين الصفحات على هذا الأساس. تعود كل البيانات بالأنواع الموحّدة في crawlfeed (Profile وPost وComment وغيرها)، وهي نفسها على كل المنصات الـ26.
احصل على ملف شخصي من LinkedIn
تحتاج إلى مفتاح API (تحصل الحسابات الجديدة على 100 رصيد مجاني) والمعرّف النصي للملف الشخصي العام: الجزء الذي يلي /in/ في رابط الملف.
curl -G https://api.crawlfeed.dev/v1/linkedin/profile \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=satyanadella"الاستجابة كائن Profile داخل الغلاف المعتاد. بعد الاختصار، ومع أرقام توضيحية، تبدو هكذا:
{
"data": {
"platform": "linkedin",
"handle": "satyanadella",
"display_name": "Satya Nadella",
"bio": "…",
"followers": 1234567,
"posts_count": null,
"links": ["…"]
},
"meta": { "credits_used": 2, "credits_remaining": 98, "cache": "MISS", "data_age_s": 0 }
}يحتوي bio على نبذة الملف الشخصي أو عنوانه التعريفي. والحقل الذي لا يعرضه LinkedIn للعموم يعود بالقيمة null بدل أن يختفي، فلا تحتاج شيفرتك إلى معالجة خاصة لكل ملف.
احصل على صفحة شركة
لصفحات الشركات طلب خاص بها. مرّر في handle المعرّف النصي للشركة (الجزء الذي يلي /company/ في الرابط) أو رابط الصفحة:
curl -G https://api.crawlfeed.dev/v1/linkedin/company \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=microsoft"تعود الشركة أيضًا ككائن Profile، فتتعامل الشيفرة نفسها مع الأشخاص والمؤسسات. ولتحديثات الشركة نفسها، استدعِ /v1/linkedin/company/posts بقيمة handle نفسها؛ كل نتيجة كائن Post، وتتنقل بين الصفحات كأي قائمة أخرى.
احصل على منشورات شخص
تعيد /v1/linkedin/posts أحدث المنشورات العامة لشخص ما، صفحةً في كل طلب:
curl -G https://api.crawlfeed.dev/v1/linkedin/posts \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=satyanadella"كل عنصر كائن Post يحتوي على text، وcreated_at، وmedia، وengagement (likes وcomments وshares وغيرها)، وhashtags، وmentions.
للانتقال إلى الصفحة التالية، مرّر قيمة meta.next_cursor في المُعامل cursor. وإذا غاب next_cursor فقد وصلت إلى النهاية. تكلّف كل صفحة رصيدين، فضع حدًا قبل أن تبدأ الحلقة:
let cursor;
const posts = [];
let pages = 0;
do {
const params = new URLSearchParams({ handle: 'satyanadella', ...(cursor ? { cursor } : {}) });
const res = await fetch(`https://api.crawlfeed.dev/v1/linkedin/posts?${params}`, {
headers: { Authorization: `Bearer ${process.env.CRAWLFEED_KEY}` },
});
const { data, meta } = await res.json();
posts.push(...data);
cursor = meta.next_cursor;
pages += 1;
} while (cursor && pages < 5); // at most 10 creditsولمنشور واحد تعرفه مسبقًا، مرّر مُعرّفه أو رابطه إلى /v1/linkedin/post. وإذا كان المنشور يحتوي على فيديو، فإن /v1/linkedin/transcript تعيد نصه المنطوق بالسعر نفسه.
ابحث في منشورات LinkedIn
للعثور على المحتوى حسب الموضوع لا حسب الحساب، تعيد /v1/linkedin/search/posts?q=… المنشورات المطابقة ككائنات Post، جاهزة للتخزين إلى جانب بقية بياناتك.
curl -G https://api.crawlfeed.dev/v1/linkedin/search/posts \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "q=ai agents"اقرأ Ad Library في LinkedIn
ينشر LinkedIn الإعلانات التي تُعرض عليه في مكتبة إعلانات عامة (Ad Library)، ويتيحها crawlfeed عبر ثلاثة طلبات:
- البحث في الإعلانات بكلمة مفتاحية:
/v1/linkedin/ads/search?q=…، مع مُعاملcountryاختياري. - إعلانات معلِن:
/v1/linkedin/ads?advertiser=…، باسم المعلِن أو مُعرّف صفحته أو نطاقه. - إعلان واحد:
/v1/linkedin/ad?id=…، بمُعرّف الإعلان أو رابطه في Ad Library.
curl -G https://api.crawlfeed.dev/v1/linkedin/ads \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "advertiser=nike.com"كل نتيجة كائن Ad. وفي أبحاث المنافسين، غالبًا ما تكون هذه أنفع بيانات LinkedIn على الإطلاق: فهي تُظهر ما يقوله منافسك للمشترين الآن.
تعامل مع الأخطاء وحدّ الطلبات
الأخطاء بصيغة problem details وفق RFC 9457 مع code ثابت، فاعتمد على الرمز لا على نص الرسالة:
| الرمز | معناه | ما العمل |
|---|---|---|
not_found | الملف الشخصي أو الشركة أو المنشور غير موجود، أو غير عام | تحقق من المعرّف النصي، ولا تُعِد المحاولة |
rate_limited | أرسلت طلبات أسرع من حدّك المسموح | انتظر retry_after ثانية |
insufficient_credits | رصيدك أقل من الرصيدين اللذين يكلّفهما الطلب | اشحن رصيدك، فلم يُخصم شيء |
upstream_timeout | تأخر LinkedIn كثيرًا في الرد | أعد المحاولة، فقد استُرد الرصيد |
platform_unavailable | تعطّل LinkedIn أو المصدر | أعد المحاولة لاحقًا، فقد استُرد الرصيد |
يُستردّ رصيد الطلب الفاشل تلقائيًا، فلن تدفع مرتين عند إعادة المحاولة أبدًا. ويزداد هذا أهمية على منصة يكلّف فيها كل طلب رصيدين.
أضف تحليل المشاعر واللهجة العربية
لأسواق الأعمال في الخليج والعالم العربي عمومًا، أضف enrich=arabic إلى طلب الملف الشخصي أو المنشورات. يحصل كل عنصر على حقل enrichment فيه اللهجة والمشاعر والكيانات والموضوعات، مقابل 3 أرصدة إضافية فوق رصيدَي الطلب.
استخدم بيانات LinkedIn من Claude أو Cursor
إن كنت تفضّل السؤال على كتابة الشيفرة، فاربط خادم MCP من crawlfeed، وسيحصل مساعدك على الطلبات نفسها كأدوات:
claude mcp add --transport http crawlfeed https://mcp.crawlfeed.dev/mcp \
--header "Authorization: Bearer $CRAWLFEED_KEY"ثم اسأل مثلًا: «ماذا نشرت Microsoft على LinkedIn هذا الشهر، وما الإعلانات التي تعرضها؟». تجد طريقة الإعداد لكل عميل في دليلنا إلى MCP.
الخلاصة
لجمع بيانات LinkedIn العامة، تعفيك واجهة API لجمع البيانات من طلبات الانضمام إلى برامج الشركاء، ومن أدوات الجمع المبنية على حسابات مسجّلة، ومن المحللات التي تتعطل مع كل إعادة تصميم. مع crawlfeed، يكلّف كل طلب على LinkedIn رصيدين، والشيفرة نفسها تعمل مع TikTok وInstagram وX وYouTube. المرجع الكامل في /docs/platforms/linkedin.
أسئلة شائعة
هل جمع بيانات LinkedIn قانوني؟
جمع البيانات المتاحة للعموم قانوني عمومًا في كثير من الدول، لكنه يتوقف على مكانك، وعلى ما تجمعه، وعلى ما تفعله به. لا يعيد crawlfeed إلا البيانات العامة، ولا يسجّل الدخول إلى أي حساب أبدًا. ومعظم بيانات LinkedIn تخص أشخاصًا يمكن التعرف عليهم، فإذا خزّنتها فأنت مسؤول عن وجود أساس قانوني لذلك وفق قوانين مثل اللائحة العامة لحماية البيانات (GDPR)، وعن تلبية طلبات الحذف.
هل لدى LinkedIn واجهة API رسمية لهذا؟
تتاح معظم واجهات LinkedIn عبر برامج شركاء تتطلب موافقة، وكلٌّ منها مقصور على استخدامات محددة مثل تسجيل الدخول، أو النشر نيابةً عن عضو، أو إدارة الإعلانات. لا توجد نقطة نهاية مفتوحة لقراءة أي ملف شخصي عام أو صفحة شركة أو منشور، ولهذا تعتمد معظم الفرق على واجهة API لجمع البيانات العامة.
كم تكلّف بيانات LinkedIn مع crawlfeed؟
يكلّف كل طلب على LinkedIn رصيدين: ملف شخصي، أو صفحة شركة، أو صفحة من المنشورات، أو بحث في المنشورات، أو استعلام عن إعلان. هذا ضعف سعر معظم المنصات، لأن جلب بيانات LinkedIn من المصدر أعلى تكلفة. تحصل الحسابات الجديدة على رصيد مجاني، ويُستردّ رصيد الطلبات الفاشلة.
ما مدى حداثة البيانات؟
نخزّن الاستجابات تخزينًا مؤقتًا لفترة قصيرة حتى تبقى الطلبات المتكررة سريعة ورخيصة. يخبرك الحقلان meta.cache وmeta.data_age_s بعمر الاستجابة، وإذا أردت البيانات الحديثة مباشرة من المصدر فأضف fresh=true مقابل ضعف السعر، أي 4 أرصدة على LinkedIn.
هل يمكنني الحصول على عناوين البريد الإلكتروني أو أرقام الهواتف من LinkedIn؟
لا. يعيد crawlfeed الحقول العامة للملف الشخصي أو صفحة الشركة أو المنشور أو الإعلان، محوّلةً إلى أنواعه الموحّدة. لا يعيد بيانات التواصل، ولا يسجّل الدخول أبدًا لرؤية ما لا يستطيع الزائر غير المسجّل رؤيته.
جرّبه على بياناتك
كل الأمثلة أعلاه تعمل كما هي. تحصل الحسابات الجديدة على 100 رصيد مجاني، دون بطاقة دفع.
احصل على مفتاح API