Clojure从网站获取页面为html

时间:2017-03-01 07:17:38

标签: clojure

从网站获取网页以及在clojure中处理404重定向的最佳方法是什么。

我已经使用了enlive,但它会自动转换页面,我不想这样做,因为我想将HTML存储在数据库中供将来参考。

(defn fetch-page [url]
  (html/html-resource (java.net.URL. url)))

我遇到slurp来获取原始html内容,但我不知道这是否是从外部网站检索内容的最佳方法。

我遇到的第二个问题是处理404,处理它的最佳方法是什么,我的clojure程序在遇到404时不合理地存在。

代码:

(println (slurp "http://www.google.com/doesnotexists.html"))

输出:

  

CompilerException java.io.FileNotFoundException:http://www.google.com/doesnotexists.html

1 个答案:

答案 0 :(得分:0)

404不是重定向,它表示"未找到"。但无论如何,您可以像处理Clojure中的任何异常一样处理异常......使用try / catch

(try
  (slurp "http://www.google.com/doesnotexists.html")
  (catch java.io.FileNotFoundException ex
    <handle exception...>))