
⛏️ Maigret के पीछे का निष्कर्षण इंजन: किसी भी प्रोफ़ाइल URL को 150+ साइटों पर एक संरचित OSINT रिकॉर्ड में बदलें
किसी भी सार्वजनिक प्रोफ़ाइल पृष्ठ को एक संरचित खाता रिकॉर्ड में बदलें — उपयोगकर्ता नाम, प्रदर्शन नाम, बायो, अवतार, स्थान, जुड़ने की तिथियाँ, अनुयायी गणनाएँ, बाहरी लिंक और स्थिर आंतरिक पहचानकर्ता जो किसी खाते को नाम परिवर्तन, पुनर्रचना और विलोपन के बावजूद विशिष्ट रूप से पिन करते हैं।
socid_extractor 130+ प्लेटफ़ॉर्म से HTML पृष्ठों और API प्रतिक्रियाओं को पार्स करता है और खाता फ़ील्ड का एक सपाट, मशीन-पठनीय शब्दकोश लौटाता है। कोई API कुंजी आवश्यक नहीं, कोई हेडलेस ब्राउज़र नहीं — बस प्रतिक्रिया टेक्स्ट पर एक एकल फ़ंक्शन कॉल।
यह क्यों उपयोगी है
extract() कॉल — आपकी ओर से प्रति-प्लेटफ़ॉर्म ग्लू कोड की कोई ज़रूरत नहीं।username, fullname, created_at, is_verified, …) ताकि डाउनस्ट्रीम पाइपलाइनों को 130 मैपिंग की ज़रूरत न पड़े।Python: 3.10+.
pip install socid-extractor
वर्कस्टेशन पर स्वच्छ CLI स्थापना के लिए:
pipx install socid-extractor
नवीनतम विकास संस्करण:
pip install -U git+https://github.com/soxoj/socid-extractor.git
CLI के रूप में:
$ socid_extractor --url https://www.deviantart.com/muse1908
country: France
created_at: 2005-06-16 18:17:41
gender: female
username: Muse1908
website: www.patreon.com/musemercier
links: ['https://www.facebook.com/musemercier', 'https://www.instagram.com/muse.mercier/', 'https://www.patreon.com/musemercier']
tagline: Nothing worth having is easy...
Python लाइब्रेरी के रूप में:
import requests
import socid_extractor
r = requests.get('https://www.patreon.com/annetlovart')
print(socid_extractor.extract(r.text))
# {'patreon_id': '33913189', 'patreon_username': 'annetlovart',
# 'fullname': 'Annet Lovart',
# 'links': "['https://www.facebook.com/322598031832479', ...]"}
टिप — बैच रन: HTTP अनुरोध तब छोड़ने के लिए --skip-fetch-if-no-url-hint पास करें जब URL किसी ज्ञात साइट संकेत से मेल नहीं खाता (तेज़, लेकिन सामान्य इंजन जैसे फ़ोरम टेम्पलेट को छोड़ सकता है):
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
130+ योजनाएँ — पूर्ण सूची के लिए METHODS.md देखें।
एक गैर-व्यापक नमूना:
…और कई अन्य।
डेटा उदाहरणों के लिए, tests/test_e2e.py देखें; पार्सिंग तर्क के लिए, socid_extractor/schemes.py देखें; फ़ील्ड ओन्टोलॉजी के लिए, FIELDS.md देखें।
ओपन-सोर्स socid_extractor MIT-लाइसेंस प्राप्त है और बिना किसी प्रतिबंध के व्यावसायिक उपयोग के लिए स्वतंत्र है — लेकिन पृष्ठ पार्सर समय के साथ टूट जाते हैं क्योंकि प्लेटफ़ॉर्म अपने HTML और API बदलते हैं, और उन्हें सक्रिय रखरखाव की आवश्यकता होती है।
गंभीर व्यावसायिक उपयोग के लिए — अतिरिक्त पार्सर के रखरखाव युक्त निजी प्लगइन पैक या होस्टेड निष्कर्षण API के साथ — संपर्क करें: 📧 [email protected]
socid_extractor को अपने उत्पाद में एकीकृत करेंनिम्नलिखित SOWEL तकनीकों से मेल खाता है:
pyproject.toml से परीक्षण अतिरिक्त स्थापित करें, फिर pytest चलाएँ:
pip install '.[test]' # pytest, pytest-rerunfailures, pytest-xdist
python3 -m pytest tests/test_e2e.py -n 10 -k 'not cookies' -m 'not github_failed and not rate_limited'
इसके बजाय pip install '.[dev]' का उपयोग करें यदि आप flake8 / mypy / black (CI द्वारा उपयोग किया गया पूरा सेट) भी चाहते हैं।
प्रत्येक नई योजना का tests/test_e2e.py में एक e2e परीक्षण होना चाहिए जो वास्तविक URL/API को हिट करता हो। इनलाइन फ़िक्स्चर वाले यूनिट परीक्षण (tests/test_socid_improvements.py) भी आवश्यक हैं लेकिन e2e कवरेज को प्रतिस्थापित नहीं करते। विवरण के लिए docs/testing-and-ci.md देखें।
डेवलपर दस्तावेज़ीकरण (आर्किटेक्चर, मॉड्यूल, CI) docs/ में है।
यदि आप कोई नई योजना जोड़ना या कुछ ठीक करना चाहते हैं, तो योगदान गाइड देखें।