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 ")