
⛏️ محرك الاستخراج الذي يعمل خلف Maigret: حوّل أي رابط ملف شخصي إلى سجل استخباراتي مفتوح المصدر (OSINT) منظم عبر أكثر من 150 موقعًا
# socid_extractor
[](https://pypi.org/project/socid-extractor/)
[](https://pepy.tech/project/socid-extractor)
[](https://pepy.tech/project/socid-extractor)
[](https://github.com/soxoj/socid-extractor/blob/master/LICENSE)
[](https://github.com/soxoj/socid-extractor/actions/workflows/python-package.yml)
[](https://github.com/soxoj/socid-extractor/stargazers)
[](https://github.com/soxoj/socid-extractor/network/members)
> حوّل أي صفحة ملف شخصي عامة إلى سجل حساب منظّم — أسماء المستخدمين، والأسماء المعروضة، والنبذات التعريفية، والصور الرمزية، والمواقع، وتواريخ الانضمام، وأعداد المتابعين، والروابط الخارجية، و**المعرّفات الداخلية الثابتة** التي تحدّد الحساب بشكل فريد عبر تغييرات الأسماء وإعادة التصميم وعمليات الحذف.
يقوم `socid_extractor` بتحليل صفحات HTML واستجابات API من أكثر من 250 مخططًا ويعيد قاموسًا مسطّحًا قابلًا للقراءة آليًا لحقول الحساب. لا حاجة لمفاتيح API، ولا لمتصفح بلا واجهة — فقط استدعاء دالة واحدة على نص الاستجابة.
**لماذا هو مفيد**
- **معرّفات ثابتة عبر الخدمات.** احصل على GAIA ID (Google)، وFacebook UID، وYandex Public ID، وInstagram pk، وعشرات غيرها — قيم تصمد أمام تغييرات أسماء المستخدمين وتتيح لك ربط الحسابات عبر التسريبات والأرشيفات وفهارس محركات البحث.
- **واجهة موحّدة واحدة.** نفس استدعاء `extract()` لـ Instagram وGitHub وVK وReddit وSubstack وBluesky وTikTok — دون أي كود ربط خاص بكل منصة من جانبك.
- **أنطولوجيا الحقول.** [أسماء حقول موحّدة](https://github.com/soxoj/socid-extractor/blob/master/FIELDS.md) عبر المنصات (`username`، `fullname`، `created_at`، `is_verified`، …) بحيث لا تحتاج خطوط المعالجة اللاحقة إلى 130 تعيينًا.
- **مُختبَر ميدانيًا.** يشغّل [Maigret](https://github.com/soxoj/maigret) وعددًا من أدوات OSINT الأخرى.
## التثبيت
Python: 3.10+.
```sh
pip install socid-extractor
```
للتثبيت النظيف عبر واجهة سطر الأوامر (CLI) على محطة عمل:
```sh
pipx install socid-extractor
```
أحدث نسخة تطويرية:
```sh
pip install -U git+https://github.com/soxoj/socid-extractor.git
```
## بدء سريع
**كأداة سطر أوامر (CLI):**
```sh
$ 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:**
```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', ...]"}
```
**نصيحة — التشغيل الدفعي:** مرّر `--skip-fetch-if-no-url-hint` لتخطي طلب HTTP عندما لا يتطابق URL مع أي تلميح لموقع معروف (أسرع، لكنه قد يتخطى المحركات العامة مثل قوالب المنتديات):
```sh
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
```
## المواقع المدعومة
[**أكثر من 250 مخططًا**، تغطي ما يقارب 2,000 من المواقع التي يفحصها Maigret — راجع METHODS.md للاطلاع على القائمة الكاملة.](https://github.com/soxoj/socid-extractor/blob/master/METHODS.md)
عينة غير حصرية:
- **الشبكات الرئيسية:** Facebook (صفحات المستخدمين والمجموعات)، Instagram، VK.com، OK.ru، Reddit، TikTok، Bluesky، Tumblr، Flickr
- **منظومة Google:** مساهمات Google docs/maps (تتطلب ملفات تعريف الارتباط)، Google Play، YouTube
- **Mail.ru:** الصفحة الرئيسية لمستخدم my.mail.ru، الصور، الفيديو
- **منصات التطوير والكتابة:** GitHub، Stack Overflow (HTML + API)، LeetCode، Hashnode، Medium، Substack، Paragraph، WordPress.org، Virgool
- **المنتديات (كاشفات عامة):** Discourse، MediaWiki / Fandom wikis، Mastodon
- **متخصصة / قطاعية:** Chess.com، Roblox، MyAnimeList، Scratch، Wikipedia، DailyMotion، SlideShare، Weebly، Calendly، Amazon Author، Boosty، Warpcast (Farcaster)، Fragment (TON/Telegram)، Rarible، CSSBattle، lnk.bio، Spatial، TwitchTracker، Max (max.ru)
…وغيرها الكثير.
للاطلاع على أمثلة البيانات، راجع [`tests/test_e2e.py`](https://github.com/soxoj/socid-extractor/blob/master/tests/test_e2e.py)؛ وللاطلاع على منطق التحليل، راجع [`socid_extractor/schemes.py`](https://github.com/soxoj/socid-extractor/blob/master/socid_extractor/schemes.py)؛ وللاطلاع على تصنيف الحقول، راجع [FIELDS.md](https://github.com/soxoj/socid-extractor/blob/master/FIELDS.md).
## حالات الاستخدام
- **الانتقال من ملف شخصي إلى كل ما يمكنك رؤيته.** يعيد استدعاء واحد المعلومات المرئية بالإضافة إلى المعرّفات الداخلية المخفية التي تستخدمها المنصة خلف الكواليس. للقراءة الخلفية: [Week in OSINT — Getting a grasp on Google IDs](https://medium.com/week-in-osint/getting-a-grasp-on-googleids-77a8ab707e43).
- **تتبّع الحسابات عبر تغييرات الأسماء وإعادة التصميم وعمليات الحذف.** تتيح لك المعرّفات الثابتة (GAIA، FB UID، Yandex Public ID، Instagram pk، …) إعادة التعرّف على الشخص نفسه حتى عندما تتغيّر كل الحقول المرئية. للخلفية: [Aware Online — User IDs in social-media investigations](https://www.aware-online.com/en/importance-of-user-ids-in-social-media-investigations/).
- **البحث بواسطة UID عبر الخدمات.** بمجرد حصولك على معرّف ثابت يمكنك الانتقال إلى:
- قواعد بيانات SQL / المسرّبة (تفريغات المنتديات، بيانات الاختراقات) حيث يكون UID هو مفتاح الربط،
- فهارس Google / Yandex / archive.org التي التقطت عناوين URL تحتوي على UID.
- **تغذية أدوات OSINT اللاحقة.** يُعد السجل الموحّد أسهل بكثير في الاستيعاب من أدوات الكشط الخاصة بكل موقع — يستخدمه [Maigret](https://github.com/soxoj/maigret) وأدوات مشابهة للإثراء.
## الاستخدام التجاري
`socid_extractor` مفتوح المصدر بترخيص MIT ومجاني للاستخدام التجاري دون قيود — لكن محلّلات الصفحات تتعطّل بمرور الوقت مع تغيّر منصات HTML وواجهات API الخاصة بها، وهي بحاجة إلى صيانة نشطة.
للاستخدام التجاري الجاد — واجهة API مستضافة للاستخراج، أو صيانة المحلّلات التي يعتمد عليها منتجك — تواصل معنا: 📧 [email protected]
- واجهة API للاستخراج — دمج `socid_extractor` في منتجك
## تصنيف SOWEL
يتوافق مع تقنيات [SOWEL](https://sowel.soxoj.com/) التالية:
- [SOTL-1.4. Analyze Internal Identifiers](https://sowel.soxoj.com/internal-identifiers)
- [SOTL-11.1. Check Outdated And Unused Functionality](https://sowel.soxoj.com/outdated-unused-functionality)
## أدوات تستخدم socid_extractor
- [**Maigret**](https://github.com/soxoj/maigret) — أداة فحص أسماء قوية تُنشئ تقريرًا بكل المعلومات المتاحة من الحسابات الموجودة عبر أكثر من 3000 موقع.
- [**TheScrapper**](https://github.com/champmq/TheScrapper) — كشط رسائل البريد الإلكتروني وأرقام الهواتف وحسابات وسائل التواصل الاجتماعي من موقع ويب.
- [**InfoHunter**](https://github.com/sweetnight19/InfoHunter) — أداة OSINT مفتوحة المصدر للبحث عن المعلومات وجمعها وتحليلها عبر الإنترنت.
- [**YaSeeker**](https://github.com/HowToFind-bot/YaSeeker) — جمع كل المعلومات المتاحة عن حساب Yandex بواسطة اسم المستخدم/البريد الإلكتروني.
- [**Marple**](https://github.com/soxoj/marple) — كشط نتائج محركات البحث لاسم مستخدم معيّن.
## انظر أيضًا
- [**ShareTrace**](https://github.com/soxoj/sharetrace) — الصورة المعكوسة لهذا المشروع: يقرأ `socid_extractor` صفحة ملف شخصي، بينما يأخذ ShareTrace *رابط مشاركة* (TikTok وInstagram وChatGPT وDiscord وTelegram وغيرها) ويستعيد من أنشأه أو أعاد توجيهه، ويفكّ ترميز بعض رموز المشاركة دون اتصال. لا حاجة لتثبيت أي شيء إن أردت تجربته فقط: [بوت Telegram](https://t.me/sharetrace_bot?start=c29jaWQtZXh0cmFjdG9yOnJlYWRtZQ) الذي يديره المجتمع أو [واجهة الويب](https://share.whopostedwhat.com/).
## الاختبار
ثبّت إضافات الاختبار من [`pyproject.toml`](https://github.com/soxoj/socid-extractor/blob/master/pyproject.toml)، ثم شغّل pytest:
```sh
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).
**يجب أن يكون لكل مخطط جديد اختبار e2e** في `tests/test_e2e.py` يستهدف عنوان URL/واجهة API حقيقية. كما أن اختبارات الوحدة مع بيانات اختبار مضمّنة (`tests/test_socid_improvements.py`) مطلوبة أيضًا لكنها لا تحل محل تغطية e2e. راجع [docs/testing-and-ci.md](https://github.com/soxoj/socid-extractor/blob/master/docs/testing-and-ci.md) للتفاصيل.
توجد وثائق المطوّر (البنية، والوحدات، والتكامل المستمر) في [docs/](https://github.com/soxoj/socid-extractor/blob/master/docs).
## المساهمة
راجع [دليل المساهمة](https://github.com/soxoj/socid-extractor/blob/master/CONTRIBUTING.md) إذا كنت تريد إضافة مخطط جديد أو إصلاح أي شيء.