2017-03-01 4 views
-1

ウェブサイトからページを取得し、クロージャ内で404リダイレクトを処理する最良の方法を教えてください。Clojureがウェブサイトからhtmlとしてページを取得する

私は拡張機能を使用しましたが、自動的にページを変換します。これは、後で参照できるようにHTMLをDBに保存したいと思っていません。

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

私は生のHTMLコンテンツを取得するためにslurpに出くわしましたが、これは外部のウェブサイトから物事を取得するための最良の方法であるかどうかはわかりません。

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

出力:

それは404

コードに遭遇したとき

それを処理するための最良の方法は何であるか、私は404を処理しているしている第二の問題は、私のClojureのプログラムが不正に存在します

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

答えて

0

404はリダイレクトではなく、「見つからない」と表示されます。しかしかかわらず、あなたはtry/catchで...例外あなたがClojureの内いずれかの例外を処理と同じように扱うことができます。

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

甘いおかげで、これは私が探しているものです。 – Stixxxx

関連する問題