在OCaml中读取URL的HTML内容

时间:2011-01-07 00:30:31

标签: html url ocaml

我想写一个OCaml函数,它接受一个URL并返回一个由该位置的HTML文件内容组成的字符串。有什么想法吗?

非常感谢!

最佳, Surikator。

1 个答案:

答案 0 :(得分:8)

我使用ocurl和nethtml完成了这两件事

ocurl阅读网址内容(此处有大量属性;这是最低限度),

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)

来自nethtml; (您可能需要为Nethtml.parse

设置DTD
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

干杯!