gpt4 book ai didi

html - 解析 HTML 并使用 clojure 从解析后的值构建 map

转载 作者:可可西里 更新时间:2023-11-01 13:28:03 24 4
gpt4 key购买 nike

我正在使用 enlive clojure 来解析 HTML。我的解析器看起来像;

(def each-rows
(for [tr crawl-page
:let [row (html/select tr [:td (attr= :class "bl_12")])]
:when (seq row)]
row))

提取结果如下;

  {:tag :a,
:attrs
{:class "bl_12",
:href
"url1"},
:content ("Chapter 1")}
{:tag :a,
:attrs
{:class "bl_12",
:href
"url2"},
:content ("Chapter 2")}
{:tag :a,
:attrs
{:class "bl_12",
:href
"url3"},
:content ("Chapter 3")}

现在我的目标是得到这样一本字典;

   {:Chapter_1 "url1"  
:Chapter_2 "url2"
:Chapter_3 "url3"}

我设法写了一个只提取 href 或只提取内容的方法,但不能把它做成 map

 (defn read-specific-other [x]
(map (comp second :attrs) x))

输出:[:href "url1"]

  (defn read-specific-content [x]
(map (comp first ::content) x))

(映射读取特定内容每行)

输出:

(("Chapter 1"
"Chapter 2"
"Chapter 3"
))

如何得到想要的结果

最佳答案

看看zipmap

(zipmap (read-specific-other each-rows) (read-specific-content each-rows))

如果你真的希望键是关键字,那么使用keyword函数;但我建议保留字符串作为键。

也可以考虑使用 into for 模式:

(into {}
(for [[{:keys [attrs]} {:keys [content]}] rows]
[content attrs]))

关于html - 解析 HTML 并使用 clojure 从解析后的值构建 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34486110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com