Originariamente inviato da rickystra
me la devo studiare, non la conosco proprio.

Grazie per le risposte.
Ok ti dò una mano:

Codice PHP:
<?php
function get_http_response($URL) {
    
$handle curl_init(); // apriamo una sessione CURL, il cui identificativo è $handle;
    // curl_setopt() imposta l'opzione che specifichi come secondo parametro con il valore che specifichi nel terzo:
    // (il primo parametro è sempre l'identificativo di connessione!)
    
curl_setopt($handleCURLOPT_URL$URL); // qui gli diciamo la risorsa da raggiungere
    
curl_setopt($handleCURLOPT_HEADERfalse); // qui specifichiamo di non includere nell'output l'intestazione che gli forniamo in input
    // adesso confezioniamo l'header HTTP:
    
$http_header = array(
        
"Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3",
        
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
        
"Keep-Alive: 300",
        
"Connection: keep-alive",
        
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.2) Gecko/2008091620 Firefox/3.0.2"
    
);
    
// ora gli diamo in pasto l'array di headers per inserirli nella richiesta:
    
curl_setopt($handleCURLOPT_HTTPHEADER$http_header);
    
curl_setopt($handleCURLOPT_FRESH_CONNECTtrue); // questa istruzione è per evitare di farsi restituire una versione cache della risorsa da richiedere
    
curl_setopt($handleCURLOPT_RETURNTRANSFERtrue); // impostando a TRUE questa opzione gli imponiamo di non stamparla, ma di restituirla come output della funzione di esecuzione della chiamata curl_exec():
    
$content curl_exec($handle); // facciamo eseguire la richiesta da curl_exec() e ne intercettiamo il responso restituito nella variabile $content;
    
curl_close($handle); // ricordarsi di chiudere le connessioni aperte... SEMPRE! (O ti giochi la memoria)
    
return $content;
}

?>
Cominciando a lavorarci vedrai che CURL è una vera svolta.
Associandola a dei cronjob puoi costruirci gli spider più svariati, mirati al raggiungimento delle informazioni che vuoi attingere dalla rete.

Questo è solo uno spunto; per inviare valori POST nell'header devi scoprire come si forma un header di richiesta HTTP che posta dei dati.
Sai già come procedere?
Se no, ti consiglio la cosa più semplice: vedere un header di una richiesta reale che fai con il browser. Ci sono molti strumenti utili allo scopo, io ti consiglio di provare Tamper Data, come estensione di Firefox.

Dopo averlo installato e riavviato FF, lo trovi sotto "Strumenti" > "Modifica con Tamper Data".
Poi fai una richiesta qualsiasi, aprendo per esempio la tua home page: in Tamper Data vedrai tante righe per ogni richiesta HTTP che il tuo browser invia.
Selezionandone una, nei riquadri sottostanti vedrai i dettagli: a sinistra la richiesta che ha fatto il tuo browser, a destra il responso che ottiene dal server.

Per ogni pagina saprai già che la prima richiesta coincide con il documento sito all'URL richiesto, dopodiché per ogni script, immagine, foglio di stile e altri oggetti che abbiano una origine esterna il browser lancia ulteriori richieste per avere tutto il materiale per comporre la pagina.

Hai un po' di materiale per iniziare!