2011-01-07 10 views

risposta

8

Ho fatto entrambe le cose utilizzando ocurl e nethtml

ocurl per leggere il contenuto dell'URL (tonnellate di proprietà qui, questo è il minimo),

let string_of_uri uri = 
    try let connection = Curl.init() and write_buff = Buffer.create 1763 in 
     Curl.set_writefunction connection 
       (fun x -> Buffer.add_string write_buff x; String.length x); 
     Curl.set_url connection uri; 
     Curl.perform connection; 
     Curl.global_cleanup(); 
     Buffer.contents write_buff; 
    with _ -> raise (IO_ERROR uri) 

e da nethtml ; (Potrebbe essere necessario impostare un DTD per Nethtml.parse)

let parse_html_string uri = 
    let ch = new Netchannels.input_string (string_of_uri uri) in 
    let docs = Nethtml.parse ?return_pis:(Some false) ch in 
    ch # close_in(); 
    docs 

Cheers!

+0

@nlucaroni Grazie mille per la risposta. È esattamente quello che volevo. Alcune domande veloci: (1) posso usare la tua funzione string_of_uri per gli URL contenenti altri file (ad esempio file JPEG) per analizzare parti del contenuto di quel file (non preoccuparti del significato di esso, ma preoccuparti delle codifiche)? (2) Non ho potuto installare ocurl (GODI mi ha detto:> File "lifetime.ml", riga 16, caratteri 25-36: > Errore: valore non associato Date.to_mjd), qualche idea? – Surikator

+1

1) Oh sì. totalmente filetype agnostico. 2) Penso di averlo installato dalla fonte; Godi mi ha costantemente fallito. – nlucaroni

+0

A dire il vero, ho appena guardato la fonte ocurl; Non vedo affatto un file 'lifetime.ml' (o modulo Date) !! Deve provenire da qualche strana dipendenza? Saluti! – nlucaroni

Problemi correlati