如何使用Google Refine从URL获取HTTP状态代码?

时间:2015-11-20 20:38:01

标签: clojure jython http-status-codes google-refine

我有一个包含很长网址列表的文件。我想使用Google Refine来获取每个网址打开时显示的HTTP状态代码。 URL存储在1列中,每1个单元格1个URL。 HTTP状态代码应存储在新列中。 Google Refine提供3种语言:Clojure,Jython和GREL。我是编程方面的新手。

1 个答案:

答案 0 :(得分:2)

在Clojure中获取响应代码,您可以建立连接,然后检查响应代码。这是一个仅使用内置java.net类的示例,因此您不必包含任何库(我不知道使用此程序有多容易)

hello.core> (.. (java.net.URL. "http://google.com/index.html")
                openConnection
                getResponseCode)
200

对于clojure应用程序来说,使用诸如http-kit之类的http库来更干净地执行此操作会更为正常。因此,如果您可以轻松地包含库,我将采用该路由并保存几行代码。

PS:您可能还想在

之后关闭连接
hello.core> (let [connection (.openConnection (java.net.URL. "http://google.com/index.html"))
                  response (.getResponseCode connection)]
              (.. connection      ;; yep, java's strange
                  getInputStream  ;; closing the input stream closes it's conneection
                  close)          ;; so most people use http-kit
              response)