CUSTOM EXTRACTION

0
375

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”:

  1. XPath: XPath selectors;
  2. CSS Path;
  3. Regex: per estrazione di dati più avanzati (approfondimento: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)

Se decidi di approfittare delle prime due soluzioni “XPath” e “CSS Path” puoi scegliere quali elementi estrapolare tramite:

  • Extract Html elements: 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.

Una volta selezionata la “Custom Extraction” ti basta cliccare su “Add” e inserire le tue istruzioni per l’estrazione dei dati. 

I dati ottenuti sono disponibili nella tab “Custom 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.

ESTRACTION CON XPATH

Di seguito alcuni esempi di estrapolazioni utilizzando l’XPath.

Headings: 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 specifiche anche sugli altri “headings” presenti in pagina. 

Estrazione di tutti gli heading H3: XPath: //h3

Estrazione del primo heading H3:  

XPath: /descendant::h3[1]

Estrazione dei primi 5 heading H3: 

XPath: /descendant::h3[position() >= 0 and position() <= 5]

Se vuoi contare il numero di H3 presenti nella pagina: 

XPath: count(//H3)

Se vuoi conoscere la lunghezza di una stringa puoi sempre usare XPath ma impostando l’opzione “Function Value”.

XPath: string-length (//h3)
  • 2. Estrapolazione delle singole versioni degli “Hreflang
XPath: //*[@hreflang]/@hreflang
  • 3. Scoprire e collezionare le diverse tipologie ( “Types”) nei dati strutturati:
XPath: //*[@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”.

  • 4. Collezionare i Social Media Tag, Open Graph Tags e Twitter cards:

XPath: 

/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(@property, ‘twitter:title’)]/@content
//meta[starts-with(@property, ‘twitter:description’)]/@content
/meta[starts-with(@property, ‘twitter:account_id’)]/@content
//meta[starts-with(@property, ‘twitter:card’)]/@content
//meta[starts-with(@property, ‘twitter:image:src’)]/@content
//meta[starts-with(@property, ‘twitter:creator’)]/@content
  • 5. Estrarre gli indirizzi email e/o i numeri di telefono da un sito web
XPath: //a[starts-with(@href, ‘mailto’)]
XPath: //a[starts-with(@href, ‘tel’)]
  • 6. Estrarre particolari frames dal sito web come Google Tag Manager, Video Youtube.

Collezionare tutti gli IFrame: 

XPath: //iframe/@src

Restituisce gli IFrame dei video Youtube: XPath:

//iframe[contains(@src ,’www.youtube.com/embed/’)]
  • Collezionare lo script di Google Tag Manager
XPath: //iframe[not(contains(@src, ‘https://www.googletagmanager.com/’))]/@src
  • 7. Estrazione di contenuti da specifici Divs o Span fornendo la classe (da sostituire al posto di “example”)
XPath: //div[@class=”example”]
//span[@class=”example”]

Collezionare contenuti concatenati in un’unica estrapolazione

XPath: //div[contains(@class ,’main-blog--posts_single-inner--text--inner’)]//h3|//a[@class=”comments-link”]

Questo esempio colleziona i titoli e numero di commenti dei blog post (per funzionare dovrai adeguare le classi specifiche del tuo sito web).

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 prossimi Seo Audit:

  • 1. Estrazione dell’ID di Google Analytics e di Google Tag Manager:
[“’](UA-.*?)[“’]
[“’](GTM-.*?)[“’]
  • 2. Estrazione dei Structured Data.

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:

“product”: “(.*?)”
“ratingValue”: “(.*?)”
“reviewCount”: “(.*?)”


Estrapolazione di ogni dato dallo script JSON-LD:

<script type=\”application\/ld\+json\”>(.*?)</script>
Estrazione di indirizzi Email: [a-zA-Z0-9-_.]+@[a-zA-Z0-9-.]+