Enlive is a great tool for this. Shortly speaking:
(ns foo.bar (:require [net.cgrand.enlive-html :as html])) (defn fetch-page [url] (html/html-resource (java.net.URL. url)))
Here is a good tutorial on using it as a scraper / parser, and as a template engine:
Here is a short example of page scraping.
Another option is clj-tagsoup . Enlive also uses tagoup, but also has a plugin parser, so you can add support for other parsers.
ebaxt source share