
socid-extractor v0.1.1
⛏️ Il motore di estrazione alla base di Maigret: trasforma qualsiasi URL di profilo in un record OSINT strutturato su oltre 150 siti
socid_extractor
Trasforma qualsiasi pagina di profilo pubblica in un record di account strutturato — username, nomi visualizzati, bio, avatar, località, date di iscrizione, numero di follower, link esterni e gli identificatori interni stabili che individuano in modo univoco un account attraverso rinomine, ridisegni e cancellazioni.
socid_extractor analizza pagine HTML e risposte API da oltre 250 schemi e restituisce un dizionario piatto e leggibile da macchina dei campi dell'account. Nessuna chiave API richiesta, nessun browser headless — basta una singola chiamata di funzione sul testo della risposta.
Perché è utile
- ID stabili tra servizi. Ottieni GAIA ID (Google), Facebook UID, Yandex Public ID, Instagram pk e dozzine di altri — valori che sopravvivono ai cambi di username e ti permettono di correlare account tra leak, archivi e indici dei motori di ricerca.
- Un'interfaccia uniforme. La stessa chiamata
extract()per Instagram, GitHub, VK, Reddit, Substack, Bluesky, TikTok — nessun codice di adattamento per piattaforma da parte tua. - Ontologia dei campi. Nomi di campo normalizzati tra le piattaforme (
username,fullname,created_at,is_verified, …) così le pipeline a valle non necessitano di 130 mappature. - Collaudato sul campo. Alimenta Maigret e numerosi altri strumenti OSINT.
Installazione
Python: 3.10+.
pip install socid-extractor
Per un'installazione CLI pulita su una workstation:
pipx install socid-extractor
La versione di sviluppo più recente:
pip install -U git+https://github.com/soxoj/socid-extractor.git
Avvio rapido
Come 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...
Come libreria 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', ...]"}
Suggerimento — esecuzioni batch: passa --skip-fetch-if-no-url-hint per saltare la richiesta HTTP quando l'URL non corrisponde a nessun suggerimento di sito noto (più veloce, ma potrebbe saltare motori generici come i template di forum):
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
Siti supportati
Un campione non esaustivo:
- Principali network: Facebook (pagine utente e gruppo), Instagram, VK.com, OK.ru, Reddit, TikTok, Bluesky, Tumblr, Flickr
- Ecosistema Google: contributi Google docs/maps (richiede cookie), Google Play, YouTube
- Mail.ru: pagina principale utente my.mail.ru, foto, video
- Piattaforme di sviluppo / scrittura: GitHub, Stack Overflow (HTML + API), LeetCode, Hashnode, Medium, Substack, Paragraph, WordPress.org, Virgool
- Forum (rilevatori universali): Discourse, MediaWiki / wiki Fandom, Mastodon
- Di nicchia / verticali: 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)
…e molti altri.
Per esempi di dati, consulta tests/test_e2e.py; per la logica di parsing, consulta socid_extractor/schemes.py; per l'ontologia dei campi, consulta FIELDS.md.
Casi d'uso
- Passa da un profilo a tutto ciò che è visibile. Una singola chiamata restituisce le informazioni visibili più gli ID interni nascosti che la piattaforma utilizza dietro le quinte. Lettura di approfondimento: Week in OSINT — Getting a grasp on Google IDs.
- Traccia gli account attraverso rinomine, ridisegni ed eliminazioni. Gli ID stabili (GAIA, FB UID, Yandex Public ID, Instagram pk, …) ti permettono di re-identificare la stessa persona anche quando ogni campo visibile è cambiato. Approfondimento: Aware Online — User IDs in social-media investigations.
- Cerca tramite UID tra servizi diversi. Una volta ottenuto un identificatore stabile puoi passare a:
- database SQL / trapelati (dump di forum, dati di violazioni) in cui l'UID è la chiave di join,
- indici Google / Yandex / archive.org che hanno catturato URL contenenti l'UID.
- Alimenta strumenti OSINT a valle. Un record normalizzato è molto più facile da importare rispetto a scraper specifici per singolo sito — utilizzato da Maigret e strumenti simili per l'arricchimento.
Uso commerciale
socid_extractor open-source è distribuito con licenza MIT ed è libero per uso commerciale senza restrizioni — ma i parser delle pagine si rompono nel tempo man mano che le piattaforme modificano il loro HTML e le loro API, e richiedono manutenzione attiva.
Per un uso commerciale serio — un'API di estrazione ospitata, o la manutenzione dei parser da cui dipende il tuo prodotto — contattaci: 📧 [email protected]
- API di estrazione — integra
socid_extractornel tuo prodotto
Classificazione SOWEL
Corrisponde alle seguenti tecniche SOWEL: