• Super User

    Creiamo un motore di ricerca con relativo spider

    :fumato: ok sono impazzito :sbonk:
    però effettivamente sarebbe bello mettere insieme tutte le nostre idee e creare un motore di ricerca.

    Allora pensavo che, senza porci un vero e proprio obiettivo, potremmo buttare giù tutte le nostre idee e magari in questo modo capire come possono funzionare gli altri motori di ricerca. 😎


  • Community Manager

    E' una bella idea,

    si creerebbe che lo sviluppatore deve fare molto lavoro e quelli intorno a lui nada 🙂


  • User Attivo

    Allora facciamo il Giooooooooooorgio! :lol:

    Persino il dominio è libero! :sbonk:

    Scherzi a parte probabilmente le idee concentrate in questo posto sono più che sufficienti per creare anche uno spider abbastanza efficiente, ma ci vorrebbero mezzi, tempo e soprattutto capacità notevoli.


  • Super User

    le capacità notevoli sono presenti in abbondanza in questo forum 😄

    i mezzi non ne sono sicuro....

    il tempo... pagherei per avere una giornata di 36 ore :lol:


  • Super User

    invece di seguire un filo logico proponiamo un problema e risolviamolo.

    Per esempio:

    avete notato la velocità di google? eppure se realmente leggesse la cache di ogni pagina salvata dovrebbe impiegarci una vita.

    Quindi secondo voi come avviene il salvataggio delle cache e la ricerca nel db di google?

    io suppongo che lui legga l'intera cache mentre passa con lo spider e poi potrebbe fare un simile salvataggio:

    salva la cache su un database e le assegna dei valori che la identifichino.. un id o qualcosa del genere
    poi crea per ogni parola nella cache una tabella del tipo db_parola e vi infila l'id della cache e il posizionamento (o meglio il valore della parola all'interno della pagina)
    alla fine db_hotels conterrà tutti gli id e i dati essenziali delle cache che contengono la parola hotels

    se vogliamo fare una ricerca tipo: hotels roma

    lui cercherà in db_hotels e in db_roma tutte gli id presenti in entrambe le tabelle. Fa una media (o un calcolo) con i valori di posizionamento delle due parole e ottiene il posizionamento per hotels roma.

    Se però fosse davvero questo il metodo di google allora:

    non mi spiego come faccia a calcolare "hotel roma" (con le virgolette)
    non mi spiego perchè dia un numero approssimativo dei risultati ottenuti

    Quindi al 90% lui non usa il metodo che ho appena detto, ma un metodo che gli permette velocemente di fornire risultati per ogni ricerca e che non gli permette di conoscere il vero numero di risultati (quando questi sono elevati)

    Voi come fareste?


  • User Attivo

    Salve,
    sono nuovo (per modo di dire), e da un pò di tempo seguo le discussioni su questo forum per imparare qualche cosa (sono autodidatta).
    Riguardo all'argomento, tempo fa mi è venuta voglia di mettere sui miei portali un motore di ricerca, che non fosse il solito db dove devi inserire i dati, ma un vero e proprio motore di ricerca dotato di spider a cui devi solo dare l'indirizzo dei siti da visitare e la "profondità" con cui deve operare, è molto veloce e preciso e può senz'altro essere utile anche per cercare di capire gli "altri" motori, e ........
    sopraTtutto è codice free.
    Il "mio" motore di ricerca che trovate all'indirizzo:
    http://search.sun-garden.info è tematico, faccio indicizzare solo siti inerenti i settori merceologici trattati dal portale, ma ha già 1400 siti indicizzati.
    Il codice per creare il proprio "search engine" PHP+MySql lo trovate all'indirizzo:
    http://www.phpdig.net/index.php
    E' il mio primo post ma spero risulti utile,

    Albino


  • Super User

    utile..ma non è fatto da te vero?


  • User Attivo

    No, io ho utilizzato lo script di cui ho messo il link per il download, poi l'ho personalizzato.

    Albino


  • Community Manager

    Ciao shade benvenuto e grazie per la segnalazione.

    Mi hai dato una bella idea per GT.it

    Userò uno script, faccio indicizzare tutte le pagine di Gt.it e lo metto come motore interno ed esterno 🙂

    Grazie 🙂


  • User Attivo

    scusate la lunghezza
    :mmm:
    il problema non è lo spider o il db, il problema è la ricerca, ho studiato a fondo la questione tempo fà è in realtà la funzione spider e db è moolto semplice.

    spider:archivia le pagine separando il codice dal testuale, segue i link presenti nelle pagine e registra la loro URL

    db composto da 3 campi:id,codice,testo.

    in questo modo quando si effettua la ricerca si potrà confrontare il codice con i vari ALT e title e il testo.
    inoltre questo sistema renderebbe anche fattibile la ricerca con le "".

    ovviamente questo è solo una base, xchè per esempio si potrebbero prevedere campi aggiuntivi come: peso della pagina, data di scansione, data di creazione del domino, link out, link in etc etc.

    ma come dicevo il problema è la ricerca.
    Creare un algoritmo che sia in grado di produrre una SERP in base a vari fattori presenti nel db non è facile.

    si potrebbero applicare dei coefficienti che sommati tra loro diano l'attendibilità, ma in questo modo un buon SEO nel giro di poche settimane troverebbe le giuste dosi per portare milioni di pagine ai primi posti, quindi come ovviare a questo?

    • registrare tutte le ricerche fatte dagli utenti e per associazione ridefinere le key costantemente es. (totti, gol di totti, gol di totti ai mondiali 2006) tutte e 3 le key presentano totti, quindi se io cerco "totti" favorirei le pagine che in quel momento ospitano i contenuti riferiti al "gol di totti mondiale 2006" e se non presente ai "gol di totti" questo perchè sono le correlate più cercate.(sandbox suggestion)

    • creare toolbar, dove poter registrare il tempo di permaneza degli utenti su un sito, tracciare i link ai quali clicca etc etc...

    ma in questo modo dovro' chiamare il motore google. :fumato:


  • Super User

    sto leggendo il codice dello spider ci ha fornito shade.

    A me piacerebbe capire solo come fa in php a salvare il codice delle pagine.

    se riesco a capirlo ho un'idea brillante su come poi sfruttarlo ^____^

    invece di perdere tempo con un motore farei volentieri una cosa di questo tipo

    creo un codice che generi una pagina random da posizionare con una key prestabilita...appena verifico che google sta accedendo nuovamente alla pagina analizzo i primi 10 risultati della serp che mi interessa e se la mia pagina è presente alllora gliela fornisco senza modifiche, altrimenti ne genero casualmente una nuova :sbonk:

    posizionamento automatico ^_______^ ovviamente si possono inserire tanti altri giochetti utili e probabilmente mi direte "perchè non usi le api di google"..la risposta è semplice:"mi rifiuto di impararle"


  • User Attivo

    Ciao a tutti,
    poichè utilizzo il motore di ricerca che vi ho postato, posso fornirvi qualche dettaglio in più:
    questo script non si limita alla memorizzazione dei TAG, ma anche dei testi presenti nelle pagine salvando ogni singola parola come archivio KEY, ciò permette poi di ritrovare ogni singolo testo o frazione di testo che le contenga.
    Sempre da config si può decidere il grado di importanza che si vuole abbiano i contenuti delle pagine e se i testi vanno memorizzati per intero in appositi file o parzialmente nelle apposite tabelle.
    I risultati, nelle pagine sono ordinati secondo criteri d'importanza simili agli altri motori di ricerca, nella versione da me personalizzata ho eliminato, ma è presente anche un sistema di RANK, in parte ad ogni risultato visualizza graficamente il valore assegnato.
    La scansione dei siti risulta abbastanza veloce, mediamente viene letta una pagina in circa 6 secondi, avanzando per livelli, il livello di profondità di scansione dei siti può essere preimpostato nel config, ma si può intervenire in modo differente per ogni singolo sito in fase di lavoro.
    Così com'è lo script si può installare in modo semplice e veloce, consiglio perciò di farlo per poterlo studiare a fondo sia dal lato utente che dal lato admin (molto interessante).


  • Super User

    se riuscite a capire come ***** fa a leggere il codice delle pagine e memorizzarne i dati, ditemelo...è tutta la mattina che provo a capirlo, ma non ci riesco :arrabbiato:


  • User Attivo

    Ti complico ulteriormente la vita:
    oltre ai file standard del web, è in grado di leggere anche i contenuti di .DOC .PDF ect...
    http://www.phpdig.net/navigation.php?action=demo
    resto dell'idea che l'unico modo per studiarlo è installarlo


  • User Attivo

    A proposito, dimenticavo:
    legge anche i robot.txt e si comporta di conseguenza.


  • User Attivo

    @kerouac3001 said:

    se riuscite a capire come ***** fa a leggere il codice delle pagine e memorizzarne i dati, ditemelo...è tutta la mattina che provo a capirlo, ma non ci riesco :arrabbiato:

    :lol: mica di fà con il codice scripting 😄

    uno spider puo' essere fatto in Visual Basic o in c++

    io ne ho fatti a tonnellate in Visual basic


  • Super User

    ehm quello era scontato..ma non me ne faccio nulla di farlo in vb6 🙂

    inoltre lo spider fornito da shade è in php (a meno ke non faccia richiesta ad uno spider remoto..ma ne dubito)

    se riesco a trovare un modo di leggere le pagine remote in php (senza che i wrappers siano abilitati) allora posso tranquillamente creare il mio script..sto studiando le google api, maper funzionare necessitano di un passaggio via POST e io non posso fornirgielo (devo fare in modo che sia automatico)

    cmq NULLA è impossibile..al massimo è difficile ke IO ci riesca^____^


  • User Attivo

    @kerouac3001 said:

    ehm quello era scontato..ma non me ne faccio nulla di farlo in vb6 🙂

    inoltre lo spider fornito da shade è in php (a meno ke non faccia richiesta ad uno spider remoto..ma ne dubito)

    se riesco a trovare un modo di leggere le pagine remote in php (senza che i wrappers siano abilitati) allora posso tranquillamente creare il mio script..sto studiando le google api, maper funzionare necessitano di un passaggio via POST e io non posso fornirgielo (devo fare in modo che sia automatico)

    cmq NULLA è impossibile..al massimo è difficile ke IO ci riesca^____^

    in VB si creano dei componeti COM che posso essere interfacciati con pagine web.
    inoltre anche in VB semplice si puo' interagire col web, lo spider funziona su un PC collegato ad internet anche la connessione ad un DB remoto.


  • Super User

    purtoppo non conosco VB così bene..uso vb6 + che altroper creare programmi a scopo matemnatico..il massimo che ho fatto è stato un programma per automatizzare un manual surf ^_____^

    se tu riesci a far interagire php con VB allora dimmelo..perchè si tratta di questo:

    lo spider arriva suuna pagina php---> lo riconosco e se è google allora leggo la pagina della serp che mi interessa e ne ricavo la mia posizione (questo si può fare in VB? )----> passo di nuovo il dato della mia posizione al php e fornisco allo spider pagine diverse a seconda della mia posizione

    questo è l'algoritmo in generale..se tu mi dici che io posso fare interaggire php e VB esattamente nel modo che mi serve, allora mi metto a studiare VB 🙂


  • User Attivo

    @kerouac3001 said:

    purtoppo non conosco VB così bene..uso vb6 + che altroper creare programmi a scopo matemnatico..il massimo che ho fatto è stato un programma per automatizzare un manual surf ^_____^

    se tu riesci a far interagire php con VB allora dimmelo..perchè si tratta di questo:

    lo spider arriva suuna pagina php---> lo riconosco e se è google allora leggo la pagina della serp che mi interessa e ne ricavo la mia posizione (questo si può fare in VB? )----> passo di nuovo il dato della mia posizione al php e fornisco allo spider pagine diverse a seconda della mia posizione

    questo è l'algoritmo in generale..se tu mi dici che io posso fare interaggire php e VB esattamente nel modo che mi serve, allora mi metto a studiare VB 🙂
    non conosco il PHP, io lavoro in ASP e quello che dici si puo' fare anche solo in ASP con l'xmlhttp...

    se hai aspetti qualche minuto preparo una pagina e te la faccio vedere on-line.