我想写一个OCaml函数,它接受一个URL并返回一个由该位置的HTML文件内容组成的字符串。有什么想法吗?
非常感谢!
最佳, Surikator。
答案 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
)
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
干杯!