يمكنك استخراج بيانات شركات LinkedIn باستخدام Python عبر إرسال قائمة بعناوين URL لصفحات الشركات إلى API من Datablist باستخدام مكتبة Requests. يعيد API سجلات شركات منظّمة تتضمن حقولًا مثل القطاع وعدد الموظفين والمقر الرئيسي والموقع الإلكتروني والوصف، متى كانت هذه المعلومات متاحة على صفحة الشركة العامة.

في هذا الدليل، أستخدم دالة Python واحدة واضحة لاسترداد سجلات n8n وPostHog وBack Market وDatablist. ثم أعيد استخدام هذه النتائج لتأهيل حسابات شركات البرمجيات التي تضم من 50 إلى 500 موظف ويقع مقرها الرئيسي في الولايات المتحدة أو ألمانيا. ويحتفظ السجل المؤهل بالموقع الإلكتروني والوصف لإجراء بحث مبيعات أكثر تعمقًا.

🔑 ملخص لمن لا يملكون وقتًا

يحوّل Datablist عناوين URL المراجَعة لصفحات شركات LinkedIn إلى سجلات شركات منظّمة يمكنك استخدامها ضمن سير عمل بحث المبيعات. يسترد مثال Python أدناه جميع صفحات النتائج، ثم يطبّق فلترًا محليًا لتأهيل الحسابات من دون إجراء استدعاء ثانٍ للـAPI.

  • المدخلات: عناوين URL لصفحات شركات LinkedIn.
  • المخرجات: بيانات الشركة المتاحة وقرار تأهيل محلي، مع الاحتفاظ بعنوان URL الأصلي وجميع بيانات الشركة معًا.

💡 تفضّل حلًا بدون برمجة؟ استخدم LinkedIn Company Page Scraper من Datablist لاستخراج حقول الشركات من عناوين URL المعروفة لصفحات شركات LinkedIn من دون كتابة أي كود.

إعداد Python ومفتاح Datablist API

في مثال Python هذا، أستخدم حزمة requests. يتوفر REST API من Datablist ضمن باقة Growth، ويستهلك كل بحث عن صفحة شركة أرصدة enrichment.

أنشئ Personal API Key من صفحة حساب Datablist API.

أنشئ ملفًا باسم scrape_linkedin_companies.py، ثم جهّز بيئة افتراضية وثبّت Requests:

shell
python -m venv .venv
source .venv/bin/activate
python -m pip install requests
export DATABLIST_API_KEY="your-api-key"

يقرأ السكربت المفتاح من DATABLIST_API_KEY ويرسله في ترويسة X-API-Key.

استخراج صفحات شركات LinkedIn بدالة Python واحدة

تضم قائمة المصدر أدناه شركات تختلف في قطاعاتها وأحجامها وبلدان مقراتها الرئيسية. تصبح كل قيمة account_id هي inputId في API. لا تُربط النتائج وفق ترتيبها في الاستجابة، ولذلك فإن هذا المعرّف الثابت هو ما يصل كل نتيجة بعنوان URL الصحيح في المصدر.

الصق السكربت الكامل التالي في scrape_linkedin_companies.py:

python
import json
import os
import time
import uuid
import requests
accounts = [
{
"account_id": "account-n8n",
"linkedin_company_url": "https://www.linkedin.com/company/n8n/",
},
{
"account_id": "account-posthog",
"linkedin_company_url": "https://www.linkedin.com/company/posthog/",
},
{
"account_id": "account-back-market",
"linkedin_company_url": "https://www.linkedin.com/company/back-market/",
},
{
"account_id": "account-datablist",
"linkedin_company_url": "https://www.linkedin.com/company/datablist/",
},
]
def scrape_companies(accounts, api_key):
"""Submit one task, wait for it to finish, and return every result."""
tasks_url = "https://api.datablist.com/v1/enrichments/tasks"
headers = {"X-API-Key": api_key}
inputs = [
{
"inputId": account["account_id"],
"data": {"companyLinkedInUrl": account["linkedin_company_url"]},
}
for account in accounts
]
unique_id = str(uuid.uuid4())
print(f"Request ID: {unique_id}")
payload = {
"enrichmentId": "linkedin-company-enrichment",
"uniqueId": unique_id,
"settings": {},
"inputs": inputs,
}
response = requests.post(tasks_url, headers=headers, json=payload)
response.raise_for_status()
task = response.json()
task_id = task["@id"]
task_url = f"{tasks_url}/{task_id}"
print(f"Task ID: {task_id}")
while task["status"] not in ("completed", "failed", "stopped"):
time.sleep(3)
response = requests.get(task_url, headers=headers)
response.raise_for_status()
task = response.json()
if task["status"] != "completed":
raise RuntimeError(
f"Task {task_id} {task['status']}: {task.get('error')}"
)
results = []
results_url = f"{task_url}/results"
params = {"limit": 100}
while True:
response = requests.get(results_url, headers=headers, params=params)
response.raise_for_status()
page = response.json()
results.extend(page["results"])
next_cursor = page["nextCursor"]
if next_cursor is None:
break
params["cursor"] = next_cursor
return results
api_key = os.environ.get("DATABLIST_API_KEY")
if not api_key:
raise RuntimeError("Set DATABLIST_API_KEY before running this script.")
company_results = scrape_companies(accounts, api_key)
print(json.dumps(company_results, indent=2, ensure_ascii=False))

شغّله باستخدام:

shell
python scrape_linkedin_companies.py

القيم الأساسية التي ينبغي تغييرها هي السجلات الموجودة في accounts. حافظ على ثبات كل account_id وعلى كونه فريدًا، ثم استبدل linkedin_company_url بعنوان صفحة شركة LinkedIn تم التحقق منه. تحوّل الدالة هذه السجلات إلى تنسيق inputs الخاص بالـAPI، وترسل عنوان الشركة في companyLinkedInUrl. وتظل settings فارغة لأن هذا الـenrichment لا يتضمن إعدادات عامة.

ينشئ طلب POST مهمة enrichment تعمل في الخلفية. يستجيب API بالحالة 202 Accepted ومعرّف للمهمة، بينما ينتظر عميل Requests عبر الاستعلام الدوري عن عنوان URL الخاص بالحالة. هذا الكود المتزامن في Python ملائم لسكربت صغير، لكن المهمة نفسها تظل تعمل بشكل غير متزامن لدى Datablist.

يتحقق طلب GET الأول من المهمة نفسها. يمكن أن تنتهي المهمة بالحالة completed أو failed أو stopped. لا يتابع السكربت إلا بعد ظهور completed؛ وإلا فإنه يعرض خطأ يتضمن معرّف المهمة وخطأ المهمة الذي أعاده API. احتفظ بهذا المعرّف عند التحقيق في المشكلة، لأن المهمة الفاشلة أو المتوقفة قد تظل تتضمن نتائج واستخدامًا للأرصدة يمكن مراجعتهما.

بعد اكتمال المهمة، تجلب الحلقة الأخيرة صفحات النتائج بحد أقصى قدره 100 نتيجة. وتواصل جلب الصفحة التالية حتى تصبح قيمة nextCursor هي null. تحتفظ كل نتيجة بقيمة inputId التي أرسلتها، ولهذا تستطيع حلقة التأهيل اللاحقة ربط النتائج بصورة صحيحة حتى عندما يختلف ترتيب الاستجابة عن ترتيب المدخلات.

قراءة نتيجة الشركة وفهم طريقة الاسترداد

يحدّد عنوان LinkedIn URL الشركة مباشرةً. يوحّد Datablist تنسيق عنوان المؤسسة ويسترد بيانات صفحة الشركة العامة المتاحة، بدلًا من البحث عن عدة شركات محتملة وتقييم مدى تطابقها. وعند إدخال عنوان URL لشركة محددة، يبدأ من الصفحة العامة ويمكنه إكمال الحقول التي لم تُحسم عبر مصادر بديلة مُدارة، مع الاحتفاظ بالقيم المفيدة التي عثر عليها بالفعل.

هذا الفرق مهم عند قراءة النتيجة. تعتمد الحقول الاختيارية على المعلومات المتاحة للعامة. فظهور عنوان المقر الرئيسي بقيمة null أو غياب أحد التخصصات لا يعني فشل البحث عن الشركة بأكمله.

فيما يلي صفحة النتائج الكاملة التي أُعيدت لعناوين URL الأربعة:

json
{
"taskId": "69516a973dc34481920f41ade748e917",
"results": [
{
"inputId": "account-n8n",
"status": "success",
"outputs": {
"companyName": "n8n",
"companyHQPostalCode": "10115",
"companyDescription": "n8n is a workflow automation platform that uniquely combines AI capabilities with business process automation. The platform enables connection to any app or API while maintaining the flexibility of code with the speed of no-code.\n\nReleased under a fair-code license, n8n can be self-hosted and is supported by a vibrant community of developers and builders. Users can start simple and layer complexity as needed - utilizing the visual builder for quick wins, and adding custom Javascript or Python code where more control is required, enabling the connection of anything to everything.\n\nn8n is privately held, with funding from Sequoia, Felicis Ventures, Firstminute Capital, Harpoon Ventures, and others. Individual investors include Eventbrite's Kevin Hartz and Supercell's IIkka Paananen. n8n was founded in 2019 and is headquartered in Berlin.",
"companyTagline": "Flexible AI workflow automation for technical teams.",
"companyIndustry": "Software Development",
"companySpecialities": "AI, SOAR, Workflow Automation, and AI agents",
"companyWebsite": "https://n8n.io",
"companyHQCity": "Berlin",
"linkedInCompanyId": "28491094",
"companyType": "Privately Held",
"companyHQCountry": "DE",
"companySize": 1389,
"companyLogoUrl": "https://media.licdn.com/dms/image/v2/D4D0BAQEgEphZqatXwA/company-logo_200_200/B4DaFY.Sa2JcAE-/0/1792494086070/n8n_logo?e=2147483647&v=beta&t=NTL4C6f5QAd_o9nXd15PO8pOMSSEoms_tJdDHEo6eLk",
"companyHQAddress": "Novalisstraße 10",
"companyFoundedYear": 2019,
"companyFollowerCount": 442229
},
"creditsUsed": "25",
"error": null
},
{
"inputId": "account-posthog",
"status": "success",
"outputs": {
"companyName": "PostHog",
"companyHQPostalCode": null,
"companyDescription": "At PostHog, we're working to increase the number of successful products in the world.\n\nUntil now, tools for building products have been fragmented. Product analytics, heatmaps, session recording, web analytics, feature flags, and A/B testing are all helpful, but no one wants to buy, send data to, and integrate multiple products.\n\nPostHog offers these tools (and more) in an integrated, open source platform which can be hosted in either the US or EU. Both versions are SOC2 certified, GDPR-ready, and HIPAA compliant. \n\nWe started PostHog during Y Combinator's W20 cohort and had the most successful B2B software launch on Hacker News since 2012 - with a product that was just 4 weeks old.\n\nWith over 100,000 users, we're default alive, growing 97% through word of mouth, and we are in the top 0.01% most popular repos on GitHub.",
"companyTagline": "Your product's context layer. Get started with npx @posthog/wizard",
"companyIndustry": "Software Development",
"companySpecialities": "analytics, open source, product analytics, product, data, engineering, self-driving product, session replay, context warehouse, AI, product context, and error tracking",
"companyWebsite": "https://posthog.com/",
"companyHQCity": "San Francisco",
"linkedInCompanyId": "37415928",
"companyType": "Privately Held",
"companyHQCountry": "US",
"companySize": 234,
"companyLogoUrl": "https://media.licdn.com/dms/image/v2/D560BAQGQUyE_CXUxIw/company-logo_200_200/B56aCMWEgaJAAE-/0/1789060991251/posthog_logo?e=2147483647&v=beta&t=WfTGRSqp5UfYL33sBXx3tZ1zmFUECfUPf7JtEGPAvbA",
"companyHQAddress": null,
"companyFoundedYear": 2020,
"companyFollowerCount": 59696
},
"creditsUsed": "25",
"error": null
},
{
"inputId": "account-back-market",
"status": "success",
"outputs": {
"companyName": "Back Market",
"companyHQPostalCode": null,
"companyDescription": "The world is waking up to what fast tech costs. Back Market is where the revolution shops. \nWe make refurbished tech the smart, confident choice by building trust in quality, repair and circularity. New is not always better. Smarter is.\n\nAs a certified B Corp, our mission is to create a world that does more with what we already have by prolonging the lifespan of electronic devices through circularity and repair. We have grown by double digits year over year and now serve 18 million customers across 17 markets, avoiding more than 2 million tons of CO2 emissions*\n*Back Market calculation based on ADEME 2022 methodology.\n\nFounded in Paris in 2014 by Thibaud Hug de Larauze, Quentin Le Brouster and Vianney Vaute, Back Market is a leading global marketplace where people can buy professionally refurbished technology or trade in their devices.\n\nAre you ready to join us?",
"companyTagline": "Where the world shops refurbished tech.",
"companyIndustry": "Internet Marketplace Platforms",
"companySpecialities": "refurbished tech, marketplace, sustainability, circularity, Right to Repair, sustainable solutions, refurbished marketplace, circular economy, and sustainable alternatives",
"companyWebsite": "http://www.backmarket.com",
"companyHQCity": "Paris",
"linkedInCompanyId": "4793443",
"companyType": "Privately Held",
"companyHQCountry": "FR",
"companySize": 1054,
"companyLogoUrl": "https://media.licdn.com/dms/image/v2/D4E0BAQHRv6UClt5D2g/company-logo_200_200/B4EZnoUG3tKgAI-/0/1760539209613/back_market_logo?e=2147483647&v=beta&t=Pywpeu1Qs3h0Cl8kgvYurmBfXbImm5QIIc-aQog1MqM",
"companyHQAddress": null,
"companyFoundedYear": 2014,
"companyFollowerCount": 101878
},
"creditsUsed": "25",
"error": null
},
{
"inputId": "account-datablist",
"status": "success",
"outputs": {
"companyName": "Datablist",
"companyHQPostalCode": null,
"companyDescription": "When people hear \"data,\" they think of something complicated. We will change this.\n\nDatablist is an AI-powered spreadsheet that helps you: get, manipulate, or clean data and create workflows that run automatically while you focus on what matters most.\n\nIf you want to separate Datablist.com into its main parts, you can say we have:\n\n- Deduplicating, grouping, and labeling data\n- Cleaning and editing data\n- Managing data and automated workflows\n- 50+ B2B data sources and scrapers\n- 3 AI agents:\n - Editing assistant\n - AI Research agent\n - Deduplication assistant\n\nThe top 3 reasons why companies choose Datablist.com are:\n\n1. Simplicity: you don't need to have technical knowledge or experience with formulas to get everything out of it.\n2. Flexibility that allows you to do (almost) everything with your data and AI while keeping everything under your control.\n3. Scalability that no other solution can match. Up to 2 million rows—forget Excel.\n\nGo on try it for free!\n\nhttps://www.Datablist.com",
"companyTagline": "Let your tasks become workflows: automated workflows.",
"companyIndustry": "Information Technology & Services",
"companyWebsite": "https://www.datablist.com",
"companyHQCity": "Paris",
"linkedInCompanyId": "69842428",
"companyType": "Privately Held",
"companyHQCountry": "FR",
"companySize": 3,
"companyLogoUrl": "https://media.licdn.com/dms/image/v2/C4E0BAQFNFlMb8KEPRQ/company-logo_200_200/company-logo_200_200/0/1630622803412?e=2147483647&v=beta&t=UVkk7BOerChiWgS9Y06zOpT08SlK4kpAWGDYiVvUEVU",
"companyFollowerCount": 134,
"companyFoundedYear": 2020,
"companyHQAddress": null
},
"creditsUsed": "25",
"error": null
}
],
"nextCursor": null
}

نجحت السجلات الأربعة، واستهلك كل منها 25 رصيدًا. أعاد PostHog القطاع Software Development، و234 موظفًا، ومقرًا رئيسيًا في الولايات المتحدة، إلى جانب موقعه الإلكتروني ووصفه. وتعمل n8n أيضًا في قطاع البرمجيات وتقع في أحد البلدان المحددة، لكن عدد الموظفين المُعاد لها يبلغ 1,389. أما Back Market، فأعاد القطاع Internet Marketplace Platforms، و1,054 موظفًا، ومقرًا رئيسيًا في فرنسا. وأعاد Datablist القطاع Information Technology & Services، و3 موظفين، ومقرًا رئيسيًا في فرنسا.

يفيد الكائن الكامل لأن بحث الحسابات نادرًا ما يتوقف عند حقل واحد. يمكنك التأهيل بالاعتماد على القطاع وعدد الموظفين والبلد، مع الاحتفاظ بالموقع الإلكتروني والوصف الدقيقين اللذين أعادهما API لاستخدامهما في خطوة البحث التالية.

في هذه الاستجابة، تمثل companySize عدد الموظفين المُعاد، وليست نطاق حجم من LinkedIn. وتمثل companyHQCountry موقع المقر الرئيسي، لا جميع البلدان التي تعمل فيها الشركة. وتكتسب هذه الفروق أهمية عند تكييف فلاتر الحجم والبلد مع ملف عميلك المثالي.

لا يلزم وجود جميع الحقول الاختيارية لإجراء التأهيل. يمكن ترك العنوان أو التخصص المفقود فارغًا إذا كان القطاع وعدد الموظفين وبلد المقر الرئيسي متاحة. احتفظ بقيمة companyWebsite كما أعيدت بدلًا من افتراض أن API يحوّلها إلى نطاق مجرد. ويمكن للوصف أن يساعد باحث المبيعات على فهم منتج الشركة وإعداد بحث مخصص للحساب قبل التواصل. ويجب إبقاء status وcreditsUsed وerror الخاصة بكل نتيجة بجانب حقول الشركة عند مراجعة السجل أو تخزينه.

تأهيل الحسابات لأبحاث المبيعات

لنفترض أنك تستهدف شركة برمجيات أو تكنولوجيا تضم من 50 إلى 500 موظف ويقع مقرها الرئيسي في الولايات المتحدة أو ألمانيا. أضف الحلقة التالية أسفل السكربت الكامل. فهي تعيد استخدام company_results، ولذلك لا ترسل مهمة أخرى:

python
accounts_by_id = {account["account_id"]: account for account in accounts}
qualified_accounts = []
other_accounts = []
for result in company_results:
account = accounts_by_id.get(result["inputId"])
qualification = "needs_review"
if result["status"] == "success":
outputs = result["outputs"]
industry = outputs.get("companyIndustry")
company_size = outputs.get("companySize")
country = outputs.get("companyHQCountry")
if industry and isinstance(company_size, (int, float)) and country:
industry_matches = any(
keyword in industry.lower()
for keyword in ("software", "technology")
)
size_matches = 50 <= company_size <= 500
country_matches = country in {"US", "DE"}
if industry_matches and size_matches and country_matches:
qualification = "qualified"
else:
qualification = "not_qualified"
source_url = None
if account is not None:
source_url = account["linkedin_company_url"]
reviewed_account = dict(result)
reviewed_account["sourceLinkedInUrl"] = source_url
reviewed_account["qualification"] = qualification
if qualification == "qualified":
qualified_accounts.append(reviewed_account)
else:
other_accounts.append(reviewed_account)
print(json.dumps(qualified_accounts, indent=2, ensure_ascii=False))

يُربط PostHog مجددًا بـaccount-posthog حتى لو أعاد API الصفوف بترتيب مختلف. ويتأهل لأن Software Development و234 موظفًا وUS تجتاز الفحوص الثلاثة. تنسخ الحلقة النتيجة الأصلية مع جميع قيم outputs، والموقع المُعاد https://posthog.com/، والوصف، وcreditsUsed، وerror. ولا تضيف سوى عنوان URL للمصدر وتصنيف التأهيل المحلي.

يُربط n8n بـaccount-n8n ولا يتأهل لأن عدد موظفيه، البالغ 1,389، يتجاوز الحد الأعلى. ولا يطابق Back Market القطاع والحجم والبلد المحددة، بينما يقع Datablist دون نطاق الحجم وخارج البلدان المحددة. وتحصل أي صفوف غير ناجحة أو غير مكتملة مستقبلًا على needs_review بدلًا من استبعادها بصمت.

تُفلتر نتائج صفحات شركات LinkedIn حسب القطاع وعدد الموظفين وبلد المقر الرئيسي لتأهيل الحسابات
تُفلتر نتائج صفحات شركات LinkedIn حسب القطاع وعدد الموظفين وبلد المقر الرئيسي لتأهيل الحسابات

يمكنك تنزيل مثال Requests المتزامن الذي تتم صيانته باستمرار، أو استخدام بديل HTTPX غير المتزامن في المستودع عندما تحتاج إلى كود تطبيق غير حاجب.

تقدير أرصدة استخراج بيانات شركات LinkedIn

تستهلك صفحة شركة LinkedIn قياسية ذات اسم 25 رصيدًا. وقد يستهلك عنوان URL يحتوي على معرّف رقمي للشركة 75 رصيدًا عند الحاجة إلى المصدر البديل الأخير، لكن 75 رصيدًا ليست تكلفة كل عنوان رقمي. ويمكن لعمليات البحث الفاشلة أو التي لا تعثر على تطابق أن تستهلك أرصدة أيضًا، لذا استخدم إجمالي المهمة وقيمة creditsUsed لكل نتيجة كسجل للاستخدام الفعلي.

استهلكت عناوين URL الأربعة ذات الأسماء في هذا الدليل 100 رصيد إجمالًا. ووفق السعر القياسي، تستهلك 1,000 صفحة شركة 25,000 رصيد. أما المدخلات التي يغلب عليها استخدام المعرّفات الرقمية، فتحتاج إلى هامش أكبر لاحتمال سلوك مسار الـ75 رصيدًا.

يتطلب الوصول إلى REST API باقة Growth. تتضمن الباقة الشهرية 20,000 رصيد، بينما تُشترى الأرصدة الإضافية بصورة منفصلة. وبسعر الشحن الإضافي الأساسي الحالي بالدولار، البالغ 20 دولارًا مقابل 20,000 رصيد، تبلغ تكلفة الرصيد الواحد 0.001 دولار. ووفق هذا السعر، تعادل قيمة 25,000 رصيد مبلغ 25 دولارًا. راجع أسعار Datablist للاطلاع على الباقة وكتالوج الأرصدة الحاليين.

Loading pricing…

حل مشكلات المدخلات والمهام والنتائج الشائعة

  • DATABLIST_API_KEY مفقود: يتوقف السكربت قبل إرسال الطلب. صدّر المتغير وشغّل الملف مجددًا.
  • API يرفض المفتاح: تحقّق من Personal API Key وأبقِه في ترويسة X-API-Key المستخدمة في المثال.
  • عنوان URL للمصدر غير صالح: استبدل الملف الشخصي أو الموقع غير ذي الصلة أو القيمة الفارغة أو العنوان غير الصحيح بعنوان عام مدعوم لشركة أو مدرسة أو Showcase Page على LinkedIn، أو بعنوان شركة ذي معرّف رقمي أو عنوان Sales Navigator.
  • الأرصدة غير كافية: تحقّق من رصيدك، ثم استخدم الأرصدة المشمولة أو أضف رصيدًا إضافيًا قبل إنشاء مهمة أخرى.
  • حالة المهمة failed أو stopped: افحص الخطأ والنتائج الموجودة واستخدام الأرصدة قبل اتخاذ قرار بإرسال مهمة مدفوعة أخرى.
  • النتيجة محدودة البيانات أو حالتها no_result أو error: احتفظ بعنوان URL للمصدر والحالة والأرصدة والخطأ للمراجعة. تأكد من أن المدخل صفحة شركة عامة قبل إعادة الإرسال، من دون تخمين سبب عدم توفر البيانات.

إذا فُقدت استجابة إنشاء المهمة، فاستخدم معرّف الطلب الذي طبعه السكربت قبل POST. اعرض المهام أولًا وطابق تلك القيمة في uniqueId:

shell
curl "https://api.datablist.com/v1/enrichments/tasks?limit=100" \
-H "X-API-Key: $DATABLIST_API_KEY"

تمثل قيمة @id للمهمة المطابقة معرّف المهمة. استخدمها لمواصلة التحقق من /v1/enrichments/tasks/{taskId} أو لجلب /v1/enrichments/tasks/{taskId}/results بدلًا من إنشاء مهمة أخرى تلقائيًا. يمكن أن يتضمن الطلب الواحد ما يصل إلى 10,000 مدخل وبحجم 10 MiB؛ راجع توثيق المهام لمعرفة مدة الاحتفاظ وغيرها من تفاصيل دورة الحياة.

الخطوات التالية

أصبح لديك الآن دالة Python Requests قابلة لإعادة الاستخدام، تحوّل قائمة بعناوين URL لصفحات شركات LinkedIn إلى سجلات شركات منظّمة، بالإضافة إلى حلقة تأهيل محلية تحتفظ بجميع مخرجات API لاستخدامها في أبحاث المبيعات.

استبدل الأمثلة الأربعة بقائمة صغيرة من الحسابات التي راجعتها، وحافظ على ثبات المعرّفات، وعدّل قواعد القطاع وعدد الموظفين والبلد لتتوافق مع ملف عميلك المثالي. وإذا كانت نقطة البداية لديك هي الأشخاص بدلًا من الشركات، فاستخدم دليل LinkedIn profile scraper API. وإذا لم يكن لديك سوى أسماء الشركات، فابدأ بـالعثور على المواقع الإلكترونية للشركات باستخدام Python.