1

我有一个包含一长串 URL 的文件。我想使用 Google Refine 来获取打开每个 URL 时出现的 HTTP 状态代码。URL 存储在 1 列中,每 1 个单元格 1 个 URL。HTTP 状态代码应存储在新列中。Google Refine 中有 3 种语言可用:Clojure、Jython 和 GREL。我在编程方面很新。

4

1 回答 1

2

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

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

clojure 应用程序使用 http 库(例如 http-kit)来更干净地执行此操作会更正常。因此,如果您可以轻松地包含库,我会采取这条路线并节省几行代码。

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)
于 2015-11-20T21:31:06.497 回答