Sicuramente non con la fopen (che non mi risulta possa fare richieste HTTP), ma per un crawler "generico" il concetto è simile.
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?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.
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.