我正在尝试使用 Clojure 和 Enlivep
在属性之一具有我指定的值的条件下提取 html 标记的内容。像这样的东西
<p itemprop="description"> Some content I want to extract </p>
所以我想得到Some content I want to extract
if itemprop="description"
。
我对 Clojure 很陌生,所以帮助会很大。
要获取具有特定属性的任何节点的文本内容,选择器应如下所示:
(require '[net.cgrand.enlive-html :as e])
[(e/attr= :itemprop "description") e/text-node]
如果内容包含文本和标签的混合,并且您想保留它们,您应该使用net.cgrand.enlive-html/any-node
而不是net.cgrand.enlive-html/text-node
.
您可以使用以下方法对其进行测试:
(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 ")