2

これは初心者の質問です。Web ページを解析し、一連の 5 つの要素を返す関数があります。次に、関数を使用して、println正しく機能するかどうかを確認します。

...
(defn select-first-index-page-elements [source element n]
    ((get-parsing-logic source "parsing-logic-index-page" element "final-touch-fn")
        (nth 
            (html/select 
                (fetch-first-page source)
                (get-parsing-logic source "parsing-logic-index-page" element "first-touch"))
            n)))

(defn parsing-source [source]
(loop [n 0]
    (when (< n (count-first-index-page-elements source "title"))
(println ; the group of elements:
    (select-first-index-page-elements source "date" n)
    " - "
    (select-first-index-page-elements source "title" n)
    " - "
    (select-first-index-page-elements source "url" n)
    "\n")
(recur (inc n)))))))

(parsing-source "events-directory-website")

では、関数の代わりに、printlnこれらの要素を DB に格納するにはどうすればよいでしょうか? そして、それがすでにデータベースにある場合、どのように要素の特定のグループを保存できませんか? 解析関数が見つけた要素の新しいグループのみを印刷するにはどうすればよいですか?

4

1 に答える 1

3

SQLKormaを確認することをお勧めします。

SQLコルマの使用:

これらの要素をDBに保存するにはどうすればよいですか?

(insert my-elements
  (values [{:elements ("a" "b" "c")}]))

また、特定の要素グループがすでにデータベースにある場合、それを保存できないのはどうしてですか?

;; using some elements youre looking for
(if-not [is-in-db (select my-elements
                          (where {:elements the-elements-youre-looking-for}))]
  (insert my-elements
      (values [{:elements the-elements-youre-looking-for}])))

次に、解析関数が検出した要素の新しいグループのみを印刷するにはどうすればよいですか?上記の回答の(select ...)呼び出しを使用して、これを解決できます。

お役に立てば幸いです。

于 2013-02-06T17:45:18.773 に答える