I am trying use Clojure and Enlive to extract content of p
html tag under condition that one of attributes has values I designated. Something like this
<p itemprop="description"> Some content I want to extract </p>
So I want to get Some content I want to extract
if itemprop="description"
.
I am very new to Clojure so help would be great.
To get the text content of any node with the specific attribute, the selector would look something like the following:
(require '[net.cgrand.enlive-html :as e])
[(e/attr= :itemprop "description") e/text-node]
If the contents contain a mix of text and tags, and you wanted to keep both of them, you should use net.cgrand.enlive-html/any-node
instead of net.cgrand.enlive-html/text-node
.
You can test it with the following:
(require '[net.cgrand.enlive-html :as e])
(def data "<p itemprop=\"description\"> Some content I want to extract </p>")
(e/select-nodes* (e/html-snippet data)
[(e/attr= :itemprop "description") e/text-node])
;=> (" Some content I want to extract ")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With