2013-07-25 449 views
8

爲什麼下面的代碼片段不起作用?解析HTML代碼片段

(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]) 

我需要做一些事情與html的字符串首先變成clojure數據結構或類似的東西?

回答

9

是的 - 你可以使用html/html-snippet將一個原始的html字符串變成有用的東西, 或html/html-resource使用一個完整的html文件。

嘗試以下操作:

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

當我嘗試解析與HTML - 摘錄的響應,我得到一個例外元數它https://gist.github.com/PuercoPop/2035343d5af8e0ecfb1d是一個Ajax請求,所以它是不是完整的HTML,有沒有問題呢? – PuercoPop

+0

順便說一句,迴應是相當短的一個選項列表:https://gist.github.com/PuercoPop/d80b05a0fc6afd5b8a39 – PuercoPop

+1

有趣。當我用'(select(html-snippet )[:option])'解析你的選項列表時,我得到了'({:tag:option,:attrs {:value「」},:content(「--seleccionar- - 「)} {:tag:option,:attrs {:value」010100「},:content(」CHACHAPOYAS「)} {:tag:option,:attrs {:value」010200「},:content(」BAGUA「 )} ...)'我使用enlive 1.1.1 ... –