13-07-2007 22:38:55

Perche' sei qui ?

Si dice che la curiosita' sia femmina, pero' ogni tanto mi piace andare a controllare nei log di Apache per vedere come la gente abbia conosciuto il mio blog, e lo abbia quindi visitato. E' piuttosto semplice, in quanto nei log ci sono righe tipo:
1.1.1.1 - - [08/Jul/2007:13:54:03 +0200] "GET /archives/cat_4/index.html HTTP/1.1" 200 5143 "http://www.google.it/search?hl=it&q=mettersi+in+mostra+spiaggia&btnG=Cerca&meta=" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20061201 Firefox/2.0.0.4 (Ubuntu-feisty)"
e se si nota c'e' proprio il campo che indica cosa e' stato cercato su Google per arrivare qui, in questo caso la frase "mettersi in mostra spiaggia" (purtroppo non c'e' scritto cosa passasse nella mente della persona nel formulare la query...).
Visto che Nanoblogger e' tutto basato su script bash, mi sono chiesto se fosse possibile fare un plugin per mettere online anche i motivi per cui la gente arriva su questo blog. I risultati li potete vedere qui a destra.
In sostanza la cosa e' piuttosto semplice, basta fare uno script per estrarre i dati come il seguente (grazie anche al manzo per il suggerimento, io odio le regexp):
if [[ "$line" =~ "q\=([[:alnum:]\+]+)\&" ]]
then
echo ${BASH_REMATCH[1]}"
" | tr -d "/" | tr "+" "\ " | sed -e s/^\ //g | sort | uniq >> $statsfile
fi

lanciarlo sui file di log di tanto in tanto per mettere l'output in un file che poi verra' caricato dal plugin, messo nell'apposita dir, quando si generano le pagine:
NB_GoogleQueries=$(< /home/kevin/public_html/blog/Analyze/stats)
NB_GoogleQueriesOld=$(< /home/kevin/public_html/blog/Analyze/stats.old)

e poi lavorare nel template main_index.htm per includere queste variabili.
Se volete, potete scaricare un archivio con le varie cose fatte.
Ci sono un paio di cosette da sistemare, ad esempio limitare l'output alle ultime ricerche e basta, ma per ora sono poche, per cui non ne vale la pena.
PS: la rottura di scatole maggiore e' gestire il logrotate, ma in qualche modo ho risolto :)