使用するライブラリ
http-kitはhttpクライアントとして使います。
enliveはhtmlをparseするのに使います。
プロジェクトにライブラリを追加
dependenciesにライブラリを追加してインストールします。
project.clj
:dependencies [[org.clojure/clojure "1.8.0"]
[enlive "1.1.6"]
[http-kit "2.3.0"]]
そしてライブラリをrequireします。
core.clj
(ns foo.core
(:gen-class)
(:require [net.cgrand.enlive-html :as html]
[org.httpkit.client :as http]))
http-kitでhttpリクエスト
http-kitではリーダーマクロの@を使うことでリクエストを同期的に扱うことができます。
レスポンスはstatusなどいろいろ返ってきますので、必要なbodyだけ取り出します。
core.clj
(def res (http/get "http://example.com"))
(def html-data (:body @res))
enliveで欲しいデータを抜き出す
html/html-snippet
でhtmlをparseして、html/select
でtitleタグの中身を取得しています。
core.clj
(def title
(-> html-data
(html/html-snippet)
(html/select [:title])
(first)
(:content)
(first)))
以上です。