2013-07-25 14 views
8

Perché il seguente frammento di codice non funziona?Frammenti di analisi di html con animazioni

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

Devo fare qualcosa con l'html-string per trasformarlo in un datastructure clojure prima o qualcosa del genere?

risposta

9

Sì, è possibile utilizzare html/html-snippet per trasformare una stringa HTML html in qualcosa che può essere utilizzato da enlive, o html/html-resource per utilizzare un intero file html.

provare quanto segue:

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

Quando provo ad analizzare la risposta con html-frammento ottengo un'eccezione arity https://gist.github.com/PuercoPop/2035343d5af8e0ecfb1d Si tratta di una richiesta AJAX così non è completo html, c'è un problema con quello? – PuercoPop

+0

Btw la risposta è piuttosto breve, un elenco di opzioni: https://gist.github.com/PuercoPop/d80b05a0fc6afd5b8a39 – PuercoPop

+1

Interessante. Quando analizzo l'elenco delle opzioni con '(selezionare (html-snippet ) [: opzione])', Ottengo '({: tag: opzione,: attrs {: valore" "},: contenuto (" --seleccionar- - ")} {: tag: opzione,: attrs {: valore" 010100 "},: contenuto (" CHACHAPOYAS ")} {: tag: opzione,: attrs {: valore" 010200 "},: contenuto (" BAGUA ")} ...) 'Sto usando enlive 1.1.1 ... –