Pagina principale

Da Wiki di Serp Analyzer 4.

Benvenuto nel wiki di Serp Analyzer

Serp Analyzer diventa un progetto open source. In questa sezione illustrerò in dettaglio il funzionamento del software in modo tale da darti la possibilità di diventare parte attiva del progetto.

Indice

[modifica] Cos' è Serp Analyzer

Serp Analyzer è un software che permette di monitorare e analizzare il posizionamento di uno o più siti web all'interno dei motori di ricerca. L'idea di base è di comportarsi come un normalissimo utente: esegue richieste http alle serp, ne ricava il posizionamento e lo salva in un database. In un secondo momento l'utente può vedere il grafico data-posizionamento dei siti rispetto alle keyword per le quali sono state fate le analisi.

[modifica] Funzionalità di Serp Analyzer 4

Il primo rilascio avrà le seguenti caratteristiche:

  • Acquisizione del posizionamento all'interno delle serp di uno o più siti web per una o più keyword;
  • Le analisi vengono eseguite in thread separati;
  • Logging errori (utilizza Log4Net);
  • Controllo automatico della disponibilità di nuove versioni;
  • Possibilità di aggiunta/modifica delle definizioni dei motori di ricerca;

Altre caratteristiche che potrebbero essere implementate:

  • Ricezione news;
  • Supporto plugins;
  • Creazione report in PDF e HTML (plugin);

[modifica] Principio di funzionamento

Assumendo che le pagine che compongono una determinata serp abbiano indirizzi del tipo:
www.motorediricerca.tld?keyword=pippo&start=N&end=M
dove:

  • pippo è la keyword per la quale si vuole ottenere la serp;
  • N è un numero intero che indica la posizione del primo sito della pagina (es: se N vale 21 significa che il primo sito che vedo nella pagina è alla ventunesima posizione);
  • M è un numero intero che indica la posizione dell'ultimo sito che compare alla fine della pagina (es: se M vale 30 significa che ogni pagina contiene 10 siti della serp e l'ultimo sito è alla trentesima posizione);

per ottenere la lista delle pagine web che compongono la serp basta calcolare N ed M.

Una volta ottenua tale lista è necessario ricevere il codice HTML delle pagine web (prestando attenzione all'ordine se si ricevono in thread distinti) e parsarne il contenuto in modo tale da ottenere la lista dei siti che compongono la serp. Solo allora saremo in grado di poter salvare nel database le informazioni sul posizionamento di una pagina web.

Teoricamente il procedimento è banale, ma in pratica non lo è affatto; ecco i perchè:

  • li indirizzi delle pagine web che compongono le serp spesso dipendo dal particolare motore di ricerca;
  • il layout delle pagine web che compongono le serp è fortemente legato al motore di ricerca;
  • il layout delle pagine web che compongono le serp cambia molto spesso;
  • i motori di ricerca bloccano temporaneamente gli ip che effettuano troppe richieste in intervalli temporali contenuti.

[modifica] Architettura del software

[modifica] Tipi

Lo schema delle classi è il seguente:

File:Schemaclassi.png

I tipi sono definiti nella DLL "Domain".

[modifica] Classi di utility

  • La classe PageDownloader permette di scaricare il codice HTML di una pagina web.

  • La classe XmlUtility contiene i metodi generici Serializza e DeSerializza.

[modifica] Codice Sorgente

Il codice sorgente è disponibile su sourceforge.net; SVN: https://serpanalyzer.svn.sourceforge.net/svnroot/serpanalyzer

[modifica] Risorse utili

link nhibernate multithreading link logfornet

Strumenti personali