Seo Bash Scripting

da Webovagando 2.866 views0

SEO bash scripting

Quante volte ci sbattiamo ripetutamente sempre sulle stesse attività SEO, arrivando magari a sottovalutare alcuni aspetti o a fare velocemente alcune cose più noiose?

A volte alcune attività SEO sono ripetitive, ma rimangono comunque molto importanti. Non potendole quindi ignorare possiamo cercare di automatizzarle attraverso del buon SEO Bash Scripting, quanto meno parzialmente.

 

Cos’è il Bash Scripting

Il Bash Scripting é sostanzialmente un linguaggio di programmazione che combina i comandi del terminale ad un vero e proprio linguaggio, per automatizzare generalmente un processo.

Normalmente si utilizza su sistemi operativi GNU/Linux, ma può essere utilizzato anche su Mac attraverso l’utilizzo del terminale e su Windows attraverso software appositi.

Esistono migliaia di programmi per poter fare veramente di tutto, da scaricare intere pagine web, alla gestione di immagini e video.

Quello che potrebbe tornarci utile lato SEO é sicuramente la possibilità di creare una sorta di crawler personalizzato per il parsing di siti web che ci interessa analizzare.

 

Un esempio pratico di SEO Bash Scripting 

Mini crawler in bash script

Prima di poter capire appieno le possibilità e le potenzialità di questo linguaggio di programmazione e dei vari tools utilizzabili ci vuole un po’ di pratica se non si hanno le basi, ma una volta studiate bene le fondamenta (si possono trovare centinaia di guide online), sicuramente non si potrà tornare più indietro.

Chiaramente non sostituisce nessun tool SEO dedicato, ma se utilizzato in combinazione, può diventare il vostro coltellino svizzero di cui non potrete più fare a meno.

Ho pensato che avrei potuto dare qualche spunto, ma alla fine ho deciso di sviluppare uno script di test da mettervi a disposizione, ovviamente come tutte le cose é sicuramente migliorabile, anzi invito gli esperti che lo leggeranno a segnalare i bug che sicuramente ci saranno ed eventuali possibili miglioramenti.

Lo script che ho sviluppato e voglio condividere con tutti voi, vi permetterà di analizzare una determinata keyword, restituendo in output 3 file txt:

1. urlserp.txt. Il primo file vi estrapolerà automaticamente tutte le url della prima pagina in SERP per la query di ricerca lanciata su Google. Sarà inoltre utile allo script per generare gli altri due file di output.

2. occorrenze.txt. Il secondo file conteggerà il numero di occorrenze della keyword all’interno di ogni pagina web estratta precedentemente.

3. ricerca-title.txt. Il terzo ed ultimo file, probabilmente il più interessante, estrapolerà per ogni url tutte le occorrenze dei Tag H1, H2 ed H3 con il contenuto rispettivo di ogni titolo e sottotitolo. L’estrazione avverrà direttamente sul codice HTML, quindi non ci darà in output solo il contenuto testuale di ciò che è stato inserito nei TAG estratti, ma anche tutto il dettaglio.

Attraverso questa estrazione automatizzata, sarà possibile quindi in un solo passaggio capire in che modo è stata utilizzata la keyword di nostro interesse dai nostri potenziali competitor in SERP.

Ho voluto per una questione di usabilità sviluppare lo script su un terminale Mac, così da permettere anche a chi non ha Linux, di poterlo utilizzare.

L’unico requisito è Wget (qui trovate una guida all’installazione di wget su macosx) e Lynx (https://habilis.net/lynxlet/Lynxlet_0.8.1.dmg il pacchetto dovrà trovarsi in /Applications/), un software open source e del tutto gratuito, che simulerà la richiesta di ricerca di un browser a tutti gli effetti sul motore di ricerca google, grazie al quale verrà generato il primo file e successivamente lavorerà in maniera del tutto automatizzata con wget per il download delle pagine web ed estrapolerà i dati di nostro interesse.

Una volta installati i software richiesti, posizionate il file ScriptSEO.sh (potete scaricare qui il codice sorgente) dentro la cartella che preferite ed aprite il Terminale.

Il terminale si apre sempre posizionandosi di default sulla vostra cartella Home. Quindi, supponendo ad esempio che abbiate creato una cartella sul vostro Desktop dal nome: ScriptSEO ed abbiate posizionato al suo interno il file dello script, vi basterà posizionarvi in questa cartella ed eseguirlo:

cd Desktop/ScriptSEO [INVIO]

chmod +x ScriptSEO.sh [INVIO] 

./ScriptSEO.sh “keyword di ricerca

Il comando chmod serve a dare il permesso di esecuzione allo script che state per lanciare, ovviamente se avete scaricato il file zip, dovete prima estrarre il file sorgente ScriptSEO.sh.

 

Uno sguardo sul codice

Proviamo a dare un rapido sguardo al codice, così da fornire degli spunti per poterlo migliorare. 

Ho inserito alcuni commenti in rosso:

#!/bin/bash

#quando trovate un # vuol dire che quello che seguirà sarà semplicemente un commento, a parte il primo che indica il percorso per l’eseguibile bash

ls /Applications/Lynxlet.app/Contents/Resources/lynx/bin/lynx > /dev/null 2>&1

#verifichiamo se abbiamo installato lynx

if [ $? -ne 0 ]

then

alias lynx='/Applications/Lynxlet.app/Contents/Resources/lynx/bin/lynx'

PATH=$PATH:/Applications/Lynxlet.app/Contents/Resources/lynx/bin

fi

query=$1

#salviamo la query in input dentro la variabile query

queryurl=$(python -c "import urllib; print urllib.quote('''$query''')”)

#trasformiamo la variabile query in una stringa codificata correttamente per il web

:>output2.txt

lynx --dump http://www.google.com/search?q=%22$queryurl%22 | grep -o '?q=http.*&sa' | awk -F'\\?q=|\\&sa' '{print $2}' | grep -v "google" | uniq -u > urlserp.txt

#partiamo con la ricerca delle url in SERP

while read url

do

echo "################################################################" >> output2.txt

echo $url >> output2.txt

echo "################################################################" >> output2.txt

wget -q -O output.txt "$url"; cat output.txt | grep -ie '<h1.*</h1>\|<h2.*</h2>\|<h3.*</h3>' >> output2.txt

echo "################################################################" >> output2.txt

done < urlserp.txt

#estrapoliamo tutti i tag H1, H2 e H3 da tutte le url

cat output2.txt | sed -e 's/.*<h1/<h1/g' > output_temp1.txt

cat output_temp1.txt | sed -e 's/<\/h1>.*/<\/h1>/g' > ricerca_title.txt

cat output2.txt | sed -e 's/.*<h2/<h2/g' > output_temp1.txt

cat output_temp1.txt | sed -e 's/<\/h2>.*/<\/h2>/g' > ricerca_title.txt

cat output2.txt | sed -e 's/.*<h3/<h3/g' > output_temp1.txt

cat output_temp1.txt | sed -e 's/<\/h3>.*/<\/h3>/g' > ricerca_title.txt

rm -f output_temp1.txt output2.txt

:>occorrenze.txt

#verifichiamo le occorrenze della keyword ricercata all’interno di tutte le url analizzate

for url in $(lynx --dump http://www.google.com/search?q=%22$queryurl%22 | grep -o '?q=http.*&sa' | awk -F'\\?q=|\\&sa' '{print $2}' | grep -v "google" | uniq -u);

do

echo "################################################################" >> occorrenze.txt

echo $url >> occorrenze.txt

wget -q -O output.txt "$url"; cat output.txt | grep -io "$query" | wc -l >> occorrenze.txt;

done

rm -f output.txt output2.txt

Questo è solo un esempio delle infinite possibilità di sviluppo di script utili per l’analisi SEO, potrebbe tornare anche utile per applicazioni di SEO Semantica e a voi cosa piacerebbe automatizzare?

Webovagando

Vincenzo Mastrobattista: Blogger, digital marketing addicted, cerco costantemente di trovare case history interessanti e alla portata di tutti.

Invia una risposta