我正在尝试使用 Enlive 解析事件列表。
通常,每个事件数据都被隔离在一个特定的 div 中(这里是“结果”)
<div class="result">
<h3>Event 1 title</h3>
<a href="http://the_site.com/event1">Event 1 page</a>
<p>Event 1 location</p>
</div>
<div class="result">
<h3>Event 2 title</h3>
<a href="http://the_site.com/event2">Event 2 page</a>
<p>Event 2 location</p>
</div>
所以我创建了一个变量,其中包含每个事件站点的所有解析逻辑:
(def parsing-config
{:source "The Site"
:results-url ["http://the_site.com"]
:parsing {
:title {:selector [[div.result] [:h3]]
:trim-fn (comp first :content)}
:url {:selector [[div.result] [:a]]
:trim-fn (:href (:attrs %))}
:location {:selector [[div.result] [:p]]
:trim-fn (comp first :content)}}
{:source "Other event site"
...}})
但是对于一个特定的站点,我有包含多个事件的 div,如下所示:
<div class="September">
<h3>Event 1 title</h3>
<a href="http://other_site.com/event1">Event 1 page</a>
<p>Event 1 location</p>
<h3>Event 2 title</h3>
<a href="http://other_site.com/event2">Event 2 page</a>
<p>Event 2 location</p>
</div>
<div class="October">
<h3>Event 3 title</h3>
<a href="http://other_site.com/event3">Event 3 page</a>
<p>Event 3 location</p>
<h3>Event 4 title</h3>
<a href="http://other_site.com/event4">Event 4 page</a>
<p>Event 4 location</p>
</div>
如何解析最后一个站点的每个事件,同时只更改解析配置变量而不是我用来解析的函数(此处未显示......)?
谢谢。
注意::trim-fn
函数可能不准确。