
पायथन 3 स्क्रिप्ट जो लिंक्डइन एपीआई से कंपनी के कर्मचारियों को डंप/स्क्रैप/एक्सट्रैक्ट करती है।
LinkedInDumper एक Python 3 स्क्रिप्ट है जो LinkedIn सोशल नेटवर्किंग प्लेटफ़ॉर्म से कर्मचारी डेटा डंप करती है।
परिणामों में firstname, lastname, position (title), location और उपयोगकर्ता का प्रोफ़ाइल लिंक शामिल होता है। यदि कंपनी में 10 से अधिक कर्मचारी नहीं हैं, तो सभी कर्मचारियों को प्राप्त करने के लिए केवल 2 API कॉल की आवश्यकता होती है। अन्यथा, हमें API परिणामों के माध्यम से पेजिनेट करना होता है। --email-format CLI फ़्लैग के साथ कोई एक Python स्ट्रिंग फ़ॉर्मेट परिभाषित कर सकता है ताकि प्राप्त first और last name के आधार पर ईमेल पते स्वतः उत्पन्न किए जा सकें।
LinkedInDumper अनौपचारिक LinkedIn Voyager API से बात करता है, जिसके लिए प्रमाणीकरण आवश्यक है। इसलिए, आपके पास एक वैध LinkedIn उपयोगकर्ता खाता होना चाहिए। इसे सरल रखने के लिए, LinkedInDumper केवल आपके द्वारा प्रदान किए गए कुकी मान की अपेक्षा करता है। इस तरह करने से, 2FA-संरक्षित खाते भी समर्थित हैं। इसके अलावा, आपको कर्मचारियों को डंप करने के लिए एक LinkedIn कंपनी URL प्रदान करना होगा।
li_at सत्र कुकी मान को प्राप्त करें, उदाहरण के लिए डेवलपर टूल के माध्यम सेli_at में निर्दिष्ट करें, या रनटाइम के दौरान CLI फ़्लैग --cookie के माध्यम से अस्थायी रूप सेusage: linkedindumper.py [-h] --url <linkedin-url> [--cookie <cookie>] [--quiet] [--include-private-profiles] [--include-contact-infos] [--jitter] [--email-format <mail-format>] [--output-json <json-file>] [--output-csv <csv-file>]
options:
-h, --help show this help message and exit
--url <linkedin-url> A LinkedIn company url - https://www.linkedin.com/company/<company>
--cookie <cookie> LinkedIn 'li_at' session cookie
--include-private-profiles
Show private accounts too
--include-contact-infos
Query each employee individually and retrieve contact infos
--jitter Add a random jitter to HTTP requests to bypass rate limiting
--email-format <mail-format>
Python string format for emails; for example:
--email-format '{0}.{1}@example.com' --> [email protected]
--email-format '{0[0]}.{1}@example.com' --> [email protected]
--email-format '{1}@example.com' --> [email protected]
--email-format '{0}@example.com' --> [email protected]
--email-format '{0[0]}{1[0]}@example.com' --> [email protected]
--output-json <json-file>
Store results in json output file
--output-csv <csv-file>
Store results in csv output file
docker run --rm l4rm4nd/linkedindumper:latest --url 'https://www.linkedin.com/company/apple' --cookie '<cookie>' --email-format '{0}.{1}@apple.de'
# install dependencies
pip install -r requirements.txt
python3 linkedindumper.py --url 'https://www.linkedin.com/company/apple' --cookie '<cookie>' --email-format '{0}.{1}@apple.de'
स्क्रिप्ट कर्मचारी डेटा को अर्ध-विराम द्वारा अलग किए गए मानों (CSV की तरह) के रूप में लौटाएगी:
██▓ ██▓ ███▄ █ ██ ▄█▀▓█████ ▓█████▄ ██▓ ███▄ █ ▓█████▄ █ ██ ███▄ ▄███▓ ██▓███ ▓█████ ██▀███
▓██▒ ▓██▒ ██ ▀█ █ ██▄█▒ ▓█ ▀ ▒██▀ ██▌▓██▒ ██ ▀█ █ ▒██▀ ██▌ ██ ▓██▒▓██▒▀█▀ ██▒▓██░ ██▒▓█ ▀ ▓██ ▒ ██▒
▒██░ ▒██▒▓██ ▀█ ██▒▓███▄░ ▒███ ░██ █▌▒██▒▓██ ▀█ ██▒░██ █▌▓██ ▒██░▓██ ▓██░▓██░ ██▓▒▒███ ▓██ ░▄█ ▒
▒██░ ░██░▓██▒ ▐▌██▒▓██ █▄ ▒▓█ ▄ ░▓█▄ ▌░██░▓██▒ ▐▌██▒░▓█▄ ▌▓▓█ ░██░▒██ ▒██ ▒██▄█▓▒ ▒▒▓█ ▄ ▒██▀▀█▄
░██████▒░██░▒██░ ▓██░▒██▒ █▄░▒████▒░▒████▓ ░██░▒██░ ▓██░░▒████▓ ▒▒█████▓ ▒██▒ ░██▒▒██▒ ░ ░░▒████▒░██▓ ▒██▒
░ ▒░▓ ░░▓ ░ ▒░ ▒ ▒ ▒ ▒▒ ▓▒░░ ▒░ ░ ▒▒▓ ▒ ░▓ ░ ▒░ ▒ ▒ ▒▒▓ ▒ ░▒▓▒ ▒ ▒ ░ ▒░ ░ ░▒▓▒░ ░ ░░░ ▒░ ░░ ▒▓ ░▒▓░
░ ░ ▒ ░ ▒ ░░ ░░ ░ ▒░░ ░▒ ▒░ ░ ░ ░ ░ ▒ ▒ ▒ ░░ ░░ ░ ▒░ ░ ▒ ▒ ░░▒░ ░ ░ ░ ░ ░░▒ ░ ░ ░ ░ ░▒ ░ ▒░
░ ░ ▒ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ░ ░░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░ ░ ░ by LRVT
[i] Company Name: apple
[i] Company X-ID: 162479
[i] LN Employees: 1000 employees found
[i] Dumping Date: 17/10/2022 13:55:06
[i] Email Format: {0}.{1}@apple.de
Firstname;Lastname;Email;Position;Gender;Location;Profile
Katrin;Honauer;[email protected];Software Engineer at Apple;N/A;Heidelberg;https://www.linkedin.com/in/katrin-honauer
Raymond;Chen;[email protected];Recruiting at Apple;N/A;Austin, Texas Metropolitan Area;https://www.linkedin.com/in/raytherecruiter
[i] Successfully crawled 2 unique apple employee(s). Hurray ^_-
वैकल्पिक रूप से, आप परिणामों को JSON या CSV के रूप में संग्रहीत करने के लिए CLI पैरामीटर --output-json और --output-csv का उपयोग कर सकते हैं।
LinkedIn संपर्क जानकारी एकत्र करते समय केवल पहले 1,000 खोज परिणामों को लौटाने की अनुमति देगा। आपको LinkedIn प्रीमियम खाते की भी आवश्यकता हो सकती है जब आप अपने फ्रीमियम LinkedIn खाते से प्रोफाइल विज़िट करने के लिए अधिकतम अनुमत क्वेरी तक पहुँच जाते हैं।
इसके अलावा, सभी कर्मचारी प्रोफ़ाइल सार्वजनिक नहीं हैं। परिणाम आपके उपयोग किए गए LinkedIn खाते और इस बात पर निर्भर करते हैं कि आप क्रॉल करने वाली कंपनी के कुछ कर्मचारियों से मित्र हैं या नहीं। इसलिए, कभी-कभी कुछ कर्मचारी खातों का firstname, lastname और प्रोफ़ाइल url प्राप्त करना संभव नहीं होता है। स्क्रिप्ट ऐसे प्रोफ़ाइल प्रदर्शित नहीं करेगी, क्योंकि उनमें डिफ़ॉल्ट मान होते हैं जैसे कि firstname में "LinkedIn" और lastname में "Member"। यदि आप ऐसे निजी प्रोफ़ाइल शामिल करना चाहते हैं, तो कृपया CLI फ़्लैग --include-private-profiles का उपयोग करें। हालाँकि कुछ खाते निजी हो सकते हैं, हम ऐसे खातों की position (title) और location प्राप्त कर सकते हैं। केवल firstname, lastname और प्रोफ़ाइल URL निजी LinkedIn खातों के लिए छिपे होते हैं।
अंत में, LinkedIn उपयोगकर्ता अपने प्रोफ़ाइल को नाम देने के लिए स्वतंत्र हैं। एक खाते का नाम विभिन्न चीजों से मिलकर बन सकता है जैसे कि अभिवादन, संक्षिप्ताक्षर, इमोजी, मध्य नाम आदि। मैंने कुछ बकवास हटाने की पूरी कोशिश की है। हालाँकि, यह सामान्य समस्या का पूर्ण समाधान नहीं है। ध्यान दें कि हम आधिकारिक LinkedIn API का उपयोग नहीं कर रहे हैं। यह स्क्रिप्ट "अनौपचारिक" Voyager API से जानकारी एकत्र करती है।
आप किसी उपयोगकर्ता की संपर्ण जानकारी (firstname, lastname, address, phone, email, address) से अतिरिक्त विवरण प्राप्त करने के लिए प्रयोगात्मक --include-contact-infos CLI फ़्लैग का उपयोग कर सकते हैं। यह प्रत्येक गणना किए गए LinkedIn उपयोगकर्ता खाते को व्यक्तिगत रूप से क्वेरी करेगा और GraphQL API का उपयोग करके डेटा प्राप्त करेगा। यह केवल JSON आउटपुट लौटाता है और बहुत अनुरोध-गहन है। डेटा वापस आता है या नहीं, यह उपयोगकर्ता की गोपनीयता सेटिंग और आपके उपयोग किए गए LinkedIn खाते पर निर्भर करता है।
यदि आपको maximum request exceeded जैसा त्रुटि संदेश मिलता है, तो स्वचालित API अनुरोधों में कुछ देरी लाने के लिए --jitter CLI पैरामीटर आज़माएँ। यह LinkedIn द्वारा कार्यान्वित पहचान या दर सीमा को बायपास करने में सक्षम हो सकता है।