2011-01-07 35 views

Trả lời

8

tôi đã thực hiện tất cả những điều đó bằng ocurl và nethtml

ocurl đọc nội dung của URL (tấn tài sản ở đây, đây là mức tối thiểu),

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) 

và từ nethtml ; (bạn có thể cần thiết lập DTD cho 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 

Chúc mừng!

+0

@nlucaroni Cảm ơn rất nhiều câu trả lời. Đó là chính xác những gì tôi muốn. Một số câu hỏi nhanh: (1) tôi có thể sử dụng hàm string_of_uri của bạn cho các URL chứa các tệp khác (ví dụ: tệp JPEG) để phân tích các phần nội dung của tệp đó (đừng lo lắng về ý nghĩa của nó, nhưng lo lắng về mã hóa)? (2) Tôi không thể cài đặt ocurl (GODI đã nói với tôi:> File "lifetime.ml", dòng 16, ký tự 25-36: > Lỗi: Giá trị chưa được gửi Date.to_mjd), bất kỳ ý tưởng nào? – Surikator

+1

1) Oh yeah. hoàn toàn loại tập tin bất khả tri. 2) Tôi nghĩ rằng tôi đã cài đặt nó từ nguồn; godi đã liên tục thất bại tôi. – nlucaroni

+0

Actaully, tôi chỉ nhìn vào nguồn ocurl; Tôi không thấy tệp 'lifetime.ml' (hoặc mô-đun ngày) nào cả !! Phải là từ một số phụ thuộc kỳ lạ? Chúc mừng! – nlucaroni

Các vấn đề liên quan