擅长:python、mysql、java
<p>首先需要使用Enlive的<code>html-resource</code>函数摄取一些HTML。我们会抓住的新闻谷歌公司名称:</p>
<pre><code>(defn fetch-url [url]
(html/html-resource (java.net.URL. url)))
(def goog-news (fetch-url "https://news.google.com"))
</code></pre>
<p>要获取所有的<code><a></code>标记,请将<code>select</code>函数与一个简单的<em>选择器</em>一起使用(第二个参数):</p>
^{pr2}$
<p>这将计算为一个映射序列,每个<code><a></code>标记一个。下面是一个来自今日新闻的<code><a></code>标记映射的示例:</p>
<pre><code>{:tag :a,
:attrs {:class "nuEeue hzdq5d ME7ew",
:target "_blank",
:href "https://www.vanityfair.com/hollywood/2018/01/first-black-panther-reviews",
:jsname "NV4Anc"},
:content ("The First Black Panther Reviews Are Here—and They're Ecstatic")}
</code></pre>
<p>要获得每个<code><a></code>的内部文本,可以使用<code>map</code>Enlive的<code>text</code>函数来处理结果,例如<code>(map html/text *1)</code>。要获得每个<code>href</code>,可以<code>(map (comp :href :attrs) *1)</code>。在</p>