2011-01-07 14 views

Respuesta

8

que he hecho ambas cosas utilizando ocurl y nethtml

ocurl para leer el contenido de la URL (toneladas de propiedades aquí, lo que es el mínimo),

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) 

y desde nethtml ; (Puede que tenga que configurar una DTD para 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 

Salud!

+0

@nlucaroni Muchas gracias por la respuesta. Es exactamente lo que quería. Algunas preguntas rápidas: (1) ¿Puedo usar su función string_of_uri para URL que contienen otros archivos (por ejemplo, archivo JPEG) para analizar partes de los contenidos de ese archivo (no se preocupe por el significado de la misma, pero preocúpese por las codificaciones)? (2) No pude instalar ocurl (GODI me dijo:> Archivo "lifetime.ml", línea 16, caracteres 25-36: > Error: valor sin consolidar Date.to_mjd), ¿alguna idea? – Surikator

+1

1) Oh sí. totalmente de tipo de archivo agnóstico. 2) Creo que lo instalé desde la fuente; godi me ha fallado constantemente. – nlucaroni

+0

Actaully, acabo de mirar la fuente ocurl; ¡No veo el archivo 'lifetime.ml' (o el módulo Date) en absoluto !! Debe ser de alguna dependencia extraña? ¡Aclamaciones! – nlucaroni

Cuestiones relacionadas