2013-07-25 21 views
8

Tại sao đoạn mã sau không hoạt động?Đoạn trích cú pháp html với số mở rộng

(html/select (:body (client/post "http://www.web.onpe.gob.pe/modElecciones/elecciones/elecciones2011/2davuelta/onpe/presidente/extras/provincias.php" {:form-params {"elegido" "010000"}})) [:option]) 

Tôi có phải làm điều gì đó với chuỗi html để biến nó thành cơ sở dữ liệu clojure trước hay tương tự không?

Trả lời

9

Đúng - bạn có thể sử dụng html/html-snippet để biến chuỗi html thô thành nội dung nào đó có thể sử dụng, hoặc html/html-resource để sử dụng toàn bộ tệp html.

Hãy thử như sau:

(html/select 
    (html/html-snippet 
    (:body (client/post "<your-website>" {:form-params {"elegido" "010000"}})) 
    [:option]) 
+0

Khi tôi cố gắng phân tích phản ứng với html đoạn tôi nhận được một ngoại lệ arity https://gist.github.com/PuercoPop/2035343d5af8e0ecfb1d Đây là một yêu cầu ajax nên nó không phải là html hoàn chỉnh, có vấn đề gì với điều đó không? – PuercoPop

+0

Btw phản hồi khá ngắn, một danh sách tùy chọn: https://gist.github.com/PuercoPop/d80b05a0fc6afd5b8a39 – PuercoPop

+1

Thú vị. Khi tôi phân tích danh sách tùy chọn của bạn bằng '(select (html-snippet ) [: option])', tôi nhận được '({: tag: option,: attrs {: value" "},: content (" --seleccionar- - ")} {: thẻ: tùy chọn,: attrs {: value" 010100 "},: content (" CHACHAPOYAS ")} {: tag: option,: attrs {: value" 010200 "},: content (" BAGUA ")} ...) 'Tôi đang sử dụng kích thích 1.1.1 ... –