Custom Extraction.
Scopri la custom Extraction per collezionare dati personalizzati dal codice html.
Come estrarre qualsiasi dato dall'HTML delle pagine con la Custom Extraction di SEO Spider, tramite XPath, CSS Path o Regex. Vedi la differenza tra le modalità di estrazione ed esempi pratici, da Analytics ai dati strutturati.
Estrazione Dati Custom
Screaming Frog è un Seo Tool molto versatile che non si limita a restituire dati e metriche predefinite ma consente anche delle analisi avanzate personalizzabili. Una di queste è la “Custom Extraction”, una funzionalità molto potente che ti permette di collezionare tutti i dati dall’html di ogni pagina web (modalità text-only) o dati renderizzati con la modalità di scansione “Javascript Rendering Mode”.
Il Seo Spider prevede 3 modalità di estrazione dei dati con la “Custom Extraction”:
- XPath: XPath selectors;
- CSS Path;
- Regex: per estrazione di dati più avanzati (approfondimento: Java Pattern – Oracle).
Se decidi di approfittare delle prime due soluzioni “XPath” e “CSS Path” puoi scegliere quali elementi estrapolare tramite:
- Extract HTML Element: permette di collezionare dati dagli elementi selezionati e dal loro contenuto interno (“Inner Html Content”).
- Extract Inner HTML: permette di estrapolare il contenuto interno di un determinato elemento selezionato. Nel caso in cui l’elemento Html contenga altri elementi Html, anche i sottoelementi saranno a tua disposizione.
- Extract Text: colleziona il contenuto testuale dell’elemento selezionato e il contenuto testuale dei suoi sottoelementi.
- Function Value: restituisce il risultato della funzione fornita. Se ad esempio utilizzi una funzione come “count(//h1)” ottieni il numero di <h1> presenti nella pagina.
Configurare la Custom Extraction
La funzione si trova in 1Configuration›2Custom›3Custom Extraction.

Una volta aperta la Custom Extraction ti basta cliccare su Add e inserire le tue istruzioni per l’estrazione dei dati.
Puoi anche aprire 1Configuration›2Crawl Config e scegliere la voce dalla colonna di sinistra.

I dati ottenuti sono disponibili nella tab 1Custom Extraction e nella scheda “Internal” in una colonna dedicata.

Ora che sai impostare la “Custom Extraction” e hai capito le potenzialità vediamo alcuni esempi di applicazione che credo ti possano essere utili per le tue scorribande nella seo tecnica.
Extraction con XPath
Di seguito alcuni esempi di estrapolazioni utilizzando l’XPath.
Headings e hreflang
Di default il Seo Spider colleziona solamente i titoli principali della pagina (H1 e H2) ma per un’analisi più specifica e completa potresti avere la necessità di reperire informazioni anche sugli altri “headings” presenti in pagina.
# Tutti gli heading H3
//h3
# Il primo heading H3
(//h3)[1]
# I primi 5 heading H3
(//h3)[position() <= 5]
# Il numero di H3 della pagina (Function Value)
count(//h3)
# La lunghezza del testo del primo H3 (Function Value)
string-length(//h3)
# Le singole versioni hreflang
//*[@hreflang]/@hreflang

Dati strutturati
Scoprire e collezionare le diverse tipologie (“Types”) nei dati strutturati in formato Microdata.
//*[@itemtype]/@itemtype
Nota Bene: per la convalida dei dati strutturati non è necessario utilizzare una “Custom Extraction” ma puoi visualizzare i dati nella tab “Structured Data”.
Open Graph e Twitter Cards
Collezionare i Social Media Tag, Open Graph Tags e Twitter cards:
//meta[starts-with(@property, 'og:title')]/@content
//meta[starts-with(@property, 'og:description')]/@content
//meta[starts-with(@property, 'og:type')]/@content
//meta[starts-with(@property, 'og:site_name')]/@content
//meta[starts-with(@property, 'og:image')]/@content
//meta[starts-with(@property, 'og:url')]/@content
//meta[starts-with(@property, 'fb:page_id')]/@content
//meta[starts-with(@property, 'fb:admins')]/@content
//meta[starts-with(@name, 'twitter:title')]/@content
//meta[starts-with(@name, 'twitter:description')]/@content
//meta[starts-with(@name, 'twitter:account_id')]/@content
//meta[starts-with(@name, 'twitter:card')]/@content
//meta[starts-with(@name, 'twitter:image:src')]/@content
//meta[starts-with(@name, 'twitter:creator')]/@content
I tag Twitter si dichiarano di solito con l’attributo name e non property: se il tuo sito usa property anche per questi, sostituisci @name con @property.
Email e telefono
Estrarre gli indirizzi email e/o i numeri di telefono dai link di un sito web:
//a[starts-with(@href, 'mailto')]/@href
//a[starts-with(@href, 'tel')]/@href
Iframe
Estrarre particolari iframe dal sito web come Google Tag Manager o i video YouTube.
# Tutti gli iframe
//iframe/@src
# Gli iframe dei video YouTube
//iframe[contains(@src, 'www.youtube.com/embed/')]/@src
# L’iframe noscript di Google Tag Manager
//iframe[contains(@src, 'www.googletagmanager.com/')]/@src
Div e span
Estrazione di contenuti da specifici Divs o Span fornendo la classe (da sostituire al posto di “example”).
//div[@class="example"]
//span[@class="example"]
Con l’operatore | puoi concatenare più espressioni in un’unica estrazione. Questo esempio colleziona i titoli e il numero di commenti dei blog post (per funzionare dovrai adeguare le classi specifiche del tuo sito web).
//div[contains(@class, 'main-blog--posts_single-inner--text--inner')]//h3 | //a[@class="comments-link"]

Extraction con Regex
Le regole Regex sono uno strumento molto potente per collezionare dati con Screaming Frog; vediamo alcuni esempi applicativi da poter utilizzare immediatamente nel tuo prossimo Seo Audit.
ID di Google Analytics e Tag Manager
Estrazione dell’ID di Google Analytics 4 (G-) e di Google Tag Manager (GTM-). Gli ID Universal Analytics (UA-) non servono più: la piattaforma ha smesso di raccogliere dati nel 2023.
["'](G-[A-Z0-9]+)["']
["'](GTM-[A-Z0-9]+)["']
Dati strutturati in JSON-LD
Per estrapolare i dati strutturati abbiamo visto che è possibile utilizzare anche la modalità XPath ma se questi hanno una formattazione in JSON-LD è consigliabile utilizzare la sintassi RegEX.
# Singoli valori dello script JSON-LD
"sku":\s*"(.*?)"
"ratingValue":\s*"?(.*?)"?[,}]
"reviewCount":\s*"?(.*?)"?[,}]
# L’intero script JSON-LD
(?s)<script type="application/ld\+json">(.*?)</script>
Indirizzi email nel testo
Per gli indirizzi email scritti nel testo, e non solo nei link mailto, puoi usare questa regex:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
Video Tutorial
Hai domande su Custom Extraction?
Le guide nascono dai progetti di tutti i giorni. Se qualcosa non torna nel tuo crawl, o vuoi applicare questa procedura al tuo sito, scrivimi.

