我正在尝试使用 enlive 的 html-resource 函数抓取网页内容,但我收到响应 403,因为我不是来自浏览器。我猜这可以在 Java 中被覆盖(找到答案 here ) ,但我希望看到一个 clojure 方法来处理这个问题。也许这可以通过向 html-resource 函数提供参数来实现,但我还没有遇到过如何以及需要将什么作为参数传递的示例。任何建议将不胜感激。
谢谢。
最佳答案
Enlive 的 html-resource
没有提供覆盖默认请求属性的方法。您可以像找到的其他答案一样,自己打开连接并将生成的 InputStream
传递给 html-resource
。
类似下面的东西会处理它:
(with-open [inputstream (-> (java.net.URL. "http://www.example.com/")
.openConnection
(doto (.setRequestProperty "User-Agent"
"Mozilla/5.0 ..."))
.getContent)]
(html-resource inputstream))
不过,拆分成自己的函数可能看起来更好。
关于java - 处理响应代码 : 403 for URL with clojure enlive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683565/