Quote Originariamente inviata da American Visualizza il messaggio
Ah ok quindi è il crawler la chiave di tutto.

Ma mettiamo che io voglia creare un sito alla trovaprezzi.it e necessito di monitorare una precisa lista di fonti quali monclick, play.com e marcopoloshop.

A questo punto punto per monitorare il codice sorgente di ciascuna di queste pagina non basterebbe scrivere questo semplice codice?
Sicuramente non con la fopen (che non mi risulta possa fare richieste HTTP), ma per un crawler "generico" il concetto è simile.
Come ben sappiamo però questo non seriverebbe a molto perchè si limiterebbe a recuparare il codice sorgente dell'HTML che di per sé non contiene alcuna informazione sui prodotti in vendita.
Se il crawler (come ogni crawler) usa l'HTML in questione seguendo i link man mano acquisirebbe le pagine di tutti i prodotti. Questo basta per un motore di ricerca "normale" (che si limita ad indicizzare il testo, e a valutare l'importanza della pagina rispetto alle parole chiave in base - tra le altre cose - ai link che portano ad essa), ma per un motore di ricerca di prezzi si pone ovviamente il problema che dici: chi mi dice da dove estrarre le informazioni che mi servono?

Si può lavorare essenzialmente in due modi:
  • si fa una ricerca in base a pattern per cercare di estrarre stringhe che "abbiano l'aspetto" di un prezzo; non è un metodo particolarmente affidabile, ma può andar bene in situazioni in cui questa informazione è semplicemente un "di più" non essenziale;
  • usando una qualche genere di API stabilita con il sito target; in quel caso il gestore del sito di ecommerce si mette d'accordo con il motore di ricerca e stabiliscono una qualche genere di API; questo garantisce informazioni accurate e aggiornate al motore di ricerca, ed è il metodo che normalmente si usa per motori di ricerca "specifici" (se guardi in un sito come trovaprezzi e simili vedrai che c'è sempre una pagina per l'affiliazione).
    Nota che un metodo del genere è anche parzialmente usato da motori di ricerca "generici" - vedi Google e le sitemap.